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
.LABEL EX_SQE
create multiset volatile table DR as
select * from ${myDB}.myTable;
警告
パッケージを分割してOracleワークロードを前処理すると、抽出されたオブジェクトでパッケージのスキーマが指定されていない場合、余分な参照が欠落することがあります。
オリジナルコード
CREATE package Schema1.Package1
IS
CREATE TABLE Table1 (
col1 INTEGER
);
CREATE PROCEDURE Proc1
BEGIN
SELECT * FROM Schema1.Table1;
END
END
この場合、 Table1
がスキーマ Schema1
内に自動的に作成されるため、9行目の参照が正しく解決されることに注意してください。しかし、移行前にパッケージの分割処理が実行され、その結果のファイルが次のような場合、
パッケージ分割処理後の変更コード
CREATE TABLE Table1 (
col1 INTEGER1
);
CREATE PROCEDURE Proc1
BEGIN
SELECT * FROM Schema1.Table1;
END
Table1
はスキーマ Schema1
内に明示的に作成されていないため、ファイル Schema1_Proc1.sql
の3行目の参照は欠落参照としてマークされます。