SnowConvert AI :欠落オブジェクトのレポート¶
欠落オブジェクトとは¶
欠落オブジェクトとは、コードユニットによって参照されているソースコード内の DDL 定義が欠落していることを指す用語です。下のテーブルは、サポートされている各言語で、どの要素が欠落オブジェクトになる可能性があるかを示しています。
オブジェクト |
Teradata |
Oracle |
Transact-SQL |
Redshift |
BigQuery |
Spark |
Databricks |
Hive |
Vertica |
PostgreSQL |
Greenplum |
Netezza |
Azure Synapse |
IBM に DB2 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
テーブル |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ビュー |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
プロシージャ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
関数 |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
マクロ |
✓ |
|||||||||||||
パッケージ関数 |
✓ |
|||||||||||||
パッケージプロシージャ |
✓ |
|||||||||||||
*パッケージ |
✓ |
|||||||||||||
結合インデックス |
✓ |
|||||||||||||
インデックス |
✓ |
|||||||||||||
同義語 |
✓ |
|||||||||||||
データベースリンク |
✓ |
|||||||||||||
型 |
✓ |
✓ |
✓ |
✓ |
||||||||||
マテリアライズドビュー |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|||
トリガー |
✓ |
✓ |
✓ |
✓ |
||||||||||
シーケンス |
✓ |
✓ |
✓ |
✓ |
||||||||||
制約 |
✓ |
✓ |
✓ |
注釈
上のセクションでアスタリスク(「*」)がリストされている場合は、オブジェクトが定数、変数、カーソルなどの 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 |
呼び出し元コード単位と MISSING 参照を通じて使用される関係の型を示します。 |
既知の問題¶
警告
.bteqのようなスクリプトファイルで使用されるシェルファイルで定義された変数は、その定義が SnowConvert AI が処理する入力ファイルの一部ではないため、欠落オブジェクトとみなされます。例えば、myDB 変数はシェルファイルで定義されていますが、これは SnowConvert AI の入力の一部ではないファイルです。.bteqファイルのみが処理されるため、5行目は欠落参照としてマークされます。
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行目の参照は欠落参照としてマークされます。