非推奨 --- Informatica Cloud用Snowflakeコネクタ1.x¶
このトピックには、Snowflakeコネクタのバージョン1.xを設定して使用する方法に関する情報が含まれています。Informatica Cloud組織の管理者とビジネスユーザーがSnowflakeコネクタを使用してデータをSnowflakeに公開する方法について説明します。
コネクタはInformatica Cloud Connector SDK を実装します。Informatica CloudとInformatica PowerCenter 9.6.1の両方にデプロイできます。PowerCenter へのコネクタのデプロイについてサポートが必要な場合は、 Snowflakeサポート にお問い合わせください。
注釈
Snowflakeは、Informaticaの製品とのデータ統合に使用できる ODBC ライブラリも提供します。現在、このライブラリは読み取り機能のみをサポートしています。
このトピックの内容:
Snowflakeコネクタの紹介¶
Snowflakeコネクタの概要¶
Snowflakeは、業界標準の APIs および ODBC ライブラリの形式でデータをクエリおよび変更するためのプログラムによる JDBC を提供します。ODBC ライブラリは、標準の ODBC コネクタを使用するInformatica製品で使用できます。ODBC コネクタの設定については、Informaticaのドキュメントをご参照ください。ODBC ライブラリは、Snowflakeアカウントからダウンロードできます。ただし、ODBC を使用して大量のデータをSnowflakeに書き込みまたは更新することは、多くの場合これらの操作を実行するための最も効率的または効果的な方法ではありません。
Snowflakeコネクタは、Snowflakeでの多数の行の一括挿入、変更、および削除のスループットを向上させるように設計されています。これは、Informaticaを通じて受信した行ごとのデータをキャッシュし、圧縮された文字区切りファイルの形式でクラウドストレージに非同期的にアップロードし、Snowflake COPY コマンドを使用してファイルからデータをインポートすることによって機能します。
Snowflakeコネクタの実装¶
処理のために送信されたデータは、構成された接続ユーザー(~
文字で識別)の内部ステージ内でステージングされます。
各ジョブのステージにサブディレクトリが作成されます。複数のバッチを処理でき、バッチごとにユーザーステージ内の対応するサブディレクトリを使用します。各サブディレクトリには次の情報が含まれています。
ターゲットテーブルの名前。
操作の名前(INSERT、DELETE、UPSERT、MODIFY)
タイムスタンプと一意の識別子(連続番号)。
History の Classic Console ページでは、プロセスを実行するように構成されたユーザーに対して次のコマンドが表示されます。
ジョブの前に実行されるように構成された SQL ステートメント。
データファイルをステージにアップロードする PUT コマンドのシーケンス。
データをステージングするための仮テーブルの作成。
COPY コマンドを使用してデータをステージングテーブルにインポートし、オプションで検証モードで最初にデータ変換エラーを特定/取得します。
DELETE、MERGE または INSERT コマンドを使用してデータを処理します。
ステージからステージングされたファイルをクリーンアップする RM コマンド。
このシーケンスは、パフォーマンスを最適化するためにコネクタによって変更される場合があります。
データエラーはInformaticaに報告され、エラーファイルのセッションログに書き込まれます。ジョブが終了するように設定されている場合は、終了する可能性があります。Snowflakeの読み込みプロセス自体は、すべてのデータ変換エラーをスキップします。
Snowflake接続¶
Snowflake接続の概要¶
Snowflakeコネクタは、Snowflake JDBC ドライバーを使用して接続します。ドライバーライブラリは、コネクタの配布に含まれています。
Snowflake接続のプロパティ¶
Snowflakeコネクタは、Snowflakeへの接続に次のプロパティを使用します。
USER および PASSWORD¶
読み込みプロセスに使用されるアカウントのユーザー名とパスワード。Snowflakeは、データがロードされるテーブルに対して適切な書き込み権限を持つ専用ユーザーを使用することをお勧めします。
Snowflake URL¶
アカウントのSnowflakeデータベースとスキーマに接続するための JDBC URL。例:
jdbc:snowflake://xy12345.snowflakecomputing.com/?db=load&schema=etl
条件:
xy12345
はアカウントの名前です(Snowflakeが提供)。アカウントが US West以外のリージョンにある場合、JDBC 接続文字列には、アカウント名の後に、
<account_id>.<region_id>.snowflakecomputing.com
の形式で リージョン ID も含める必要があります。load
はデータのロードに使用するデフォルトのデータベースの名前です。etl
はロードするテーブルを含む(load
データベース内の)スキーマの名前です。
注釈
設計時に、メタデータの参照は、接続またはユーザーの検索パスで指定されたSnowflakeスキーマとデータベースに制限されます。
Tip
大量のデータセットと非常に複雑な変換を含むジョブを実行すると、完了するまでに時間がかかる場合があります。ジョブに4時間以上かかる場合、Snowflake接続トークンの有効期限が切れる可能性があります。この状況を回避するには、client_session_keep_alive
接続文字列に JDBC パラメータを指定して、接続トークンの有効期限が切れないようにすることができます。例:
jdbc:snowflake://xy12345.snowflakecomputing.com/?...&client_session_keep_alive=true
ジョブのトランザクションを開始¶
設定されている場合、コネクタはすべてのジョブの開始前にトランザクションを開始し、ジョブの完了または失敗時にコミットまたはロールバックします。
注釈
Informaticaは、コネクタ API での操作のロールバックまたは切断をサポートしていません。ジョブを終了すると、ハングしたテーブルロックとコミットされていないトランザクションが残る可能性があり、Snowflakeコマンドラインから手動で解放する必要がある場合があります。
データエラーで中止¶
このプロパティを選択すると、データのインポート中にデータ変換エラーが発生すると、すべてのジョブの処理が停止します。エラーが発生したときに部分的な変更をロールバックするには、**ジョブのトランザクションを開始**も設定します。
注釈
データは非同期にロードされるため、このプロパティが使用され、データの複数のバッチが生成された場合、一部のデータは既にコミットされている可能性があります。
データストリームの伝播¶
コネクタは、データ処理の連鎖を可能にするミッドストリーム書き込みインターフェイスを実装します。このプロパティが選択されている場合、コネクタはさらに処理するためにデータを渡します。
パフォーマンスを向上させるには、このプロパティを選択しないでください。
Snowflakeデータ同期タスク¶
コネクタは、データ同期タスクの実行時に使用するSnowflake固有のアクションとプロパティを指定するための詳細なターゲットプロパティを提供します。
Snowflakeの詳細なターゲットプロパティ¶
次の表に、データ同期タスクに指定できる詳細なターゲットプロパティを示します。
詳細なターゲットプロパティ |
説明 |
---|---|
キー列の更新 |
DELETE または MODIFY 操作の複合キーとして使用する必要がある、ターゲットテーブル内の列名のセミコロン区切りのリスト。 |
前に実行 |
SQL ジョブの開始前に実行されるステートメント。 |
テーブルを切り捨て |
ジョブの実行前に、ターゲットテーブルからすべてのデータを削除します。このステートメントは、前に実行 ステートメントの実行後に完了します。 |
後に実行 |
SQL ジョブの完了後に実行されるステートメント。 |
1つのバッチでデータを処理 |
このプロパティをオンにすると、コネクタはジョブを処理する前にジョブからすべてのデータをアップロードします。 |
エラー時にステージファイルを保持 |
データの読み込み中にエラーが発生した場合に、ステージングされたデータファイルを保持します。このプロパティは、データエラーで中止が有効な場合にのみ有効です。 |
現地のタイムゾーンを使用 |
エージェントのローカルタイムゾーンを使用して TIMESTAMP/datetimeデータを変換します。デフォルトでは、UTC が変換に使用されます。 |
成功ファイルディレクトリ |
現在使用されていません。 |
エラーファイルディレクトリ |
現在使用されていません。 |
データベースのオーバーライド |
更新するデータベースの名前。データ同期タスク用に定義されたターゲット データベースをオーバーライドします。データ同期タスクでは、データベースのオーバーライド、スキーマのオーバーライド、またはテーブルのオーバーライドの値を指定しないでください。PowerCenter セッションで値を指定できます。 |
スキーマのオーバーライド |
更新するスキーマの名前。データ同期タスク用に定義されたターゲットスキーマをオーバーライドします。データ同期タスクでは、データベースのオーバーライド、スキーマのオーバーライド、またはテーブルのオーバーライドの値を指定しないでください。PowerCenter セッションで値を指定できます。 |
テーブルのオーバーライド |
更新するテーブルの名前。データ同期タスク用に定義されたターゲットテーブルをオーバーライドします。データ同期タスクでは、データベースのオーバーライド、スキーマのオーバーライド、またはテーブルのオーバーライドの値を指定しないでください。PowerCenter セッションで値を指定できます。 |
**使用上の注意: **
Snowflakeは主キーまたは外部キーの制約を適用せず、キーのメタデータを保持しません。対応する列Informatica環境でキーとしてマークされている場合でも、キー列の更新 プロパティを指定する必要があります。
1つのバッチでデータを処理 プロパティは、ジョブの完了を遅らせる可能性がありますが、エラーが発生した場合にデータが保持されず、トランザクション全体が存在しないことが保証されます。一度に最大量のデータを処理することで、Snowflakeウェアハウスの並列処理を最大限に活用できます。
データベースのオーバーライド、スキーマのオーバーライド、および テーブルのオーバーライド 属性は、PowerCenter によって使用され、データ同期のためにターゲットデータベース、スキーマ、および/またはテーブルをオーバーライドする値を実行時に提供します。これにより、同じデータ同期タスクを使用して、複数のデータベースおよびスキーマのテーブルを更新できます。デフォルトではフィールドは空白ですが、属性の値は実行時に提供されるため、空白のままにしておく必要があります。