SnowConvert AI - Missing Objects Report

欠落オブジェクトとは

欠落オブジェクトとは、コードユニットによって参照されているソースコード内の DDL 定義が欠落していることを指す用語です。下のテーブルは、サポートされている各言語で、どの要素が欠落オブジェクトになる可能性があるかを示しています。

Object

Teradata

Oracle

Transact-SQL

Redshift

BigQuery

Spark

Databricks

Hive

Vertica

PostgreSQL

Greenplum

Netezza

Azure Synapse

Table

View

Procedure

Function

Macro

Package Function

Package Procedure

*Package

Join Index

Index

Synonym

Database Link

Type

Materialized View

Trigger

Sequence

Constraint

注釈

上のセクションでアスタリスク(「*」)がリストされている場合は、オブジェクトが定数、変数、カーソルなどの DDL ステートメントとみなされないプロパティを自分自身から呼び出すために使用されていることを意味します。

存在する場所

欠落オブジェクトのレポートは、変換の出力フォルダー内の_「reports」_というフォルダーにあります。ファイル名は 「MissingObjectReferences」 で始まるため、簡単に見つけることができます。

ファイルの形式は .CSV です。

コンテナーに含まれる情報

欠落オブジェクトレポートには、変換中に見つかったすべての欠落オブジェクトに関する以下の情報が含まれています。

説明

PartitionKey

変換の一意識別子。

FileName

オブジェクトが置かれているファイル名。

Caller_CodeUnit

欠落要素を参照するコードユニットのタイプ。

Caller_CodeUnit_Database

欠落要素を参照するコードユニットが配置されているデータベース。現時点では、 SQL Serverオブジェクトのみがデータベースを持つことができます。

Caller_CodeUnit_Schema

欠落要素を参照するコードユニットが配置されるスキーマ。

Caller_CodeUnit_Name

欠落要素を参照するコードユニットの名前。

Caller_CodeUnit_FullName

欠落要素を参照するコードユニットの完全修飾名。

Referenced_Element_Database

欠落要素が配置されているデータベース。現時点では、 SQL Serverオブジェクトのみがデータベースを持つことができます。

Referenced_Element_Schema

欠落要素が配置されているスキーマ。

Referenced_Element_Name

欠落要素の名前。

Referenced_Element_FullName

欠落要素の完全修飾名。

参照があるファイル内の行番号。

Relation_Type

Shows the type of relation used through the caller code unit and the MISSING reference.

既知の問題

警告

Variables defined in shell files used in script files like .bteq are considered missing objects because their definition is not part of the input files that SnowConvert AI processes. E.g. the myDB variable is defined in the shell file but this is a file that is not part of the input for SnowConvert AI. Only the .bteq file will be processed and therefore, line 5 will be marked as a missing reference.

export myDB=exampleDatabase
bteq < example.bteq
Copy
.LABEL EX_SQE

create multiset volatile table DR as
   select * from ${myDB}.myTable;
Copy

警告

パッケージを分割してOracleワークロードを前処理すると、抽出されたオブジェクトでパッケージのスキーマが指定されていない場合、余分な参照が欠落することがあります。

オリジナルコード

CREATE package Schema1.Package1
IS
  CREATE TABLE Table1 (
    col1 INTEGER
  );
  
  CREATE PROCEDURE Proc1
    BEGIN
      SELECT * FROM Schema1.Table1;
    END

END   
Copy

この場合、 Table1 がスキーマ Schema1 内に自動的に作成されるため、9行目の参照が正しく解決されることに注意してください。しかし、移行前にパッケージの分割処理が実行され、その結果のファイルが次のような場合、

パッケージ分割処理後の変更コード

  CREATE TABLE Table1 (
    col1 INTEGER1
  ); 
Copy
CREATE PROCEDURE Proc1
    BEGIN
        SELECT * FROM Schema1.Table1;
    END
Copy

Table1 はスキーマ Schema1 内に明示的に作成されていないため、ファイル Schema1_Proc1.sql の3行目の参照は欠落参照としてマークされます。