Openflow Connector for SQL Server について¶
注釈
このコネクタは、 Snowflakeコネクタ規約 に従うものとします。
このトピックでは、|Sqlserver|の基本的な概念、ワークフロー、および制限について説明します。
|Sqlserver|を使用して、単一のSQL Serverインスタンス内の複数のSQL ServerデータベースをSnowflakeデータベースに接続し、ほぼリアルタイムで、または指定されたスケジュールに従ってデータを複製します。
コネクタは、包括的な一元化されたレポートを実現するために、Snowflakeを使用してMicrosoft SQL ServerデータのCDCの複製を実行します。
ワークフロー¶
以下のワークフローは、|Sqlserver|をセットアップして実行する手順の概要を示しています。
SQL Serverデータベース管理者は以下のタスクを実行します。
SQL Serverの複製設定を構成し、複製されるデータベースとテーブルの変更追跡を有効にします。
コネクタの認証情報を作成します。
(オプション)SSL経由でSQL Server インスタンスに接続するためのSSL証明書を提供します。
Snowflakeアカウント管理者は以下のタスクを実行します。
コネクタのサービスユーザー、複製されたデータを格納する宛先データベース、コネクタのウェアハウスを作成します。
コネクタをインストールします。
コネクタフロー定義に必要なパラメーターを指定します。
フローを実行します。
Openflowで実行する場合、コネクタは以下を実行します。
複製用に構成されたソーステーブルと一致するスキーマと宛先テーブルを作成します。
テーブル複製ライフサイクルに従って複製を開始します。
詳細については、 テーブルの複製方法 をご参照ください。
複数のSQL Server データベースのテーブルからデータを複製する¶
コネクタは、単一のSQL Serverインスタンス内の複数のSQL Serverデータベースからのテーブルの複製をサポートします。コネクタは、宛先Snowflakeデータベースの個別のスキーマにある異なるデータベースから複製されたテーブルを作成します。
ソースデータベース名、ソーススキーマ名、テーブル名を次の形式で組み合わせて、複製されたテーブルを参照します。
<database_name>.<schema_name>.<table_name>
複製される各ソースデータベースのスキーマごとに、コネクタは宛先のSnowflakeデータベースに個別のスキーマを作成します。宛先スキーマの名前は、次の例に示すように、ソースデータベース名とソーススキーマ名をアンダースコア文字(_)で区切った組み合わせで表されます。
<source_database_name>_<source_schema_name>
次の例に示すように、コネクタは宛先スキーマにソーステーブル名と同じ名前のテーブルを作成します。
<destination_database>_<destination_schema_name>.<source_table_name>
テーブルの複製方法¶
コネクタは以下のステージでテーブルを複製します。
スキーマのイントロスペクション:コネクタは、列名やタイプなどのソーステーブル内の列を検出し、それらをSnowflakeとコネクタの制限に照らして検証します。検証に失敗するとこのステージが失敗し、サイクルが完了します。このステージが成功して完了すると、コネクタは空の宛先テーブルを作成します。
スナップショットのロード:コネクタは、ソーステーブルで使用可能なすべてのデータを宛先テーブルにコピーします。このステージが失敗すると、コネクタはデータの複製を停止します。成功して完了すると、ソーステーブルのデータが宛先テーブルで使用できるようになります。
増分ロード: コネクタはソーステーブルの変更を追跡し、その変更を宛先テーブルに適用します。このプロセスはテーブルが複製から削除されるまで続きます。このステージで失敗すると、問題が解決するまでソーステーブルの複製が永久的に停止します。
スナップショットロードのバイパスと増分ロードプロセスの使用については、 増分複製 をご参照ください。
注釈
接続エラーなどの一時的な障害は、テーブルの複製を妨げません。ただし、サポートされていないデータ型などの永続的な障害はテーブルの複製を妨げます。永続的な障害によりテーブルの複製が妨げられた場合は、複製対象のテーブルのリストからテーブルが削除されます。失敗の原因となった問題に対処した後、複製対象のテーブルのリストにテーブルを追加し直すことができます。
サポートされている SQL Serverバージョン¶
以下のテーブルに、テスト済みで公式にサポートされている SQL Serverバージョンを一覧表示します。
プラットフォーム |
サービス/バージョン |
エディション/ティア |
サポート対象 |
|---|---|---|---|
オンプレミス |
Developer、Enterprise、Standard |
✔ サポート対象 |
|
Microsoft SQL Server 2019 |
Developer、Enterprise、Standard |
✔ サポート対象 |
|
Microsoft SQL Server 2017 |
Developer、Enterprise、Standard |
✔ サポート対象 |
|
Microsoft SQL Server 2016 |
Developer、Enterprise、Standard |
✔ サポート対象 |
|
Microsoft SQL Server 2014 |
すべて |
未試験 |
|
Microsoft SQL Server 2012 |
すべて |
未試験 |
|
Azure |
すべてのインスタンスタイプ |
サポート対象外 |
|
すべてのインスタンスタイプ |
✔ サポート対象 |
||
SQL Server on Azure VM |
すべて |
未試験 |
|
AWS |
すべてのインスタンスタイプ |
✔ サポート対象 |
|
SQL Server for Amazon EC2 |
すべて |
✔ サポート対象 |
|
Google Cloud |
Google Cloud SQL for SQL Server |
すべて |
未試験 |
Openflow要件¶
ランタイムのサイズはM以上である必要があります。大量のデータを複製する場合、特に行サイズが大きい場合は、より大きなランタイムを使用します。
コネクタは、マルチノードのOpenflowランタイムをサポートしていません。このコネクタのランタイムを、 Min nodes および Max nodes を
1に設定して構成します。
制限事項¶
単一のランタイムインスタンスで同じタイプのコネクタを複数実行することはできません。
コネクタは、 SQL Serverでのユーザー名とパスワードによる認証のみをサポートしています。
コネクタは、Snowflakeでサポートされているデータ型のテーブルのみを複製します。これらのデータ型のリストについては、 データ型の概要 をご参照ください。
コネクタは、主キーを含むデータベーステーブルのみを複製します。
デフォルト値を持つ新しいNOT NULL列がソースデータベースの1つに追加された場合、コネクタはSnowflakeデータベース内の既存の記録を更新しません。
列フィルター JSON に含まれたリストに新しい列が追加されても、コネクタはSnowflakeデータベースの既存の記録を更新しません。
ソースデータベースのいずれかで列を削除し、同じ名前で再度追加すると、追加の削除によってエラーが発生します。
列フィルターJSONに列を追加して除外した場合、さらに追加を試行するとエラーが発生します。
コネクタは、主キーの定義の変更、数値列の精度またはスケールの変更を除き、ソーステーブルスキーマの変更をサポートします。
コネクタは、テーブルの切り捨て操作をサポートしていません。
コネクタは、ドロップされた列の再追加をサポートしていません。
注釈
特定の列を複製から除外することで、特定のテーブル列に影響を与える制限を回避できます。