SQL Serverをデータパイプラインソースとして設定
SQL Serverをデータパイプラインソースとして設定し、レコードを抽出して宛先に同期します。 このガイドを使用して、コネクションの設定、パイプラインの設定、オブジェクトの追加、同期動作の確認、および既知の制限事項の理解を行います。
サポートされている機能
SQL Serverをパイプラインソースとして使用する場合、次の機能がサポートされます。
| 機能 | 詳細 |
|---|---|
| オンプレミス接続 | オンプレミスグループを通じてSQL Serverに接続します。 クラウドコネクションはデータパイプラインではサポートされていません。 |
| 完全更新と増分同期 | 完全更新モードと増分同期モードをサポートします。 増分同期ではSQL Server Change Trackingを使用します。 詳細については、同期モードを参照してください。 |
| テーブルレベルのオブジェクト選択 | 個別のSQL Serverテーブルを選択し、パイプライン内のオブジェクトとして同期します。 接続先データベース内の複数のスキーマにまたがるテーブルがサポートされています。 詳細については、パイプラインの設定を参照してください。 |
| スキーマドリフトの検出と処理 | 新しいフィールドを自動同期でスキーマ変更を自動的に検出して適用するか、新しいフィールドをブロックでスキーマを固定します。 |
| 設定可能な同期頻度 | 時間ベースの間隔で同期をスケジュールします。 サポートされる最小間隔は15分です。 |
前提条件
SQL Serverをデータパイプラインソースとして接続する前に、次の要件を満たしてください。
- オンプレミスエージェントホストから到達可能なSQL Serverインスタンス
- バージョン30以上で稼働しているオンプレミスエージェント。 設定手順については、オンプレミスエージェントのドキュメントを参照してください。
- 同期する予定のテーブルに対する
SELECT権限とVIEW DEFINITION権限を持つSQL Serverユーザー - SQL Serverインスタンスのホスト、ポート、データベース名、ユーザー名、およびパスワード
- SQL Serverデータベースおよび同期する予定の各テーブルでChange Trackingが有効になっていること。 設定手順については、Change Trackingの有効化を参照してください。
Change Trackingの有効化
Workatoでは、増分同期で行レベルの挿入、更新、および削除を検出するためにSQL Server Change Trackingが必要です。 パイプラインがオブジェクトを検出したり同期を実行したりできるようにする前に、データベース管理者はデータベースレベルとテーブルレベルの両方でこれを有効にする必要があります。
データベースレベルでChange Trackingを有効にします。
ALTER DATABASE CURRENT SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 7 DAYS, AUTO_CLEANUP = ON)Workatoでは、最小保持期間を3日にすることを推奨しています。 パイプラインが一時停止または遅延した場合に備えて、7日間にすると安全なバッファーを確保できます。
同期する予定の各テーブルについて、テーブルレベルでChange Trackingを有効にします。
ALTER TABLE [schema].[table_name] ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON)パイプラインにオブジェクトとして追加する予定の各テーブルについて、テーブルレベルのコマンドを繰り返します。
サポートされるコネクションタイプ
SQL Serverパイプラインでは、オンプレミスグループを通じたユーザー名とパスワードによる認証をサポートしています。 接続するには、SQL Serverのユーザー名とパスワードが必要です。
クラウドコネクションはサポートされていません
クラウドコネクションは、SQL Serverのデータパイプラインソースとしてサポートされていません。 コネクションタイプフィールドでオンプレミスグループを選択する必要があります。
SQL Serverに接続する
SQL Serverをデータパイプラインソースとして接続するには、次の手順を実行します。
作成 > コネクションを選択するか、Cを2回押します。
新規コネクションページでSQL Serverを検索して選択します。
コネクション名フィールドに名前を入力します。
SQL Serverコネクションの設定
ロケーションドロップダウンを使用して、コネクションを保存するプロジェクトを選択します。
コネクションタイプフィールドでオンプレミスグループを選択します。
クラウドを選択しないでください。 クラウドコネクションは、SQL Serverのデータパイプラインソースとしてサポートされておらず、オブジェクトの読み込みを妨げます。
ホストフィールドにSQL Serverインスタンスのホスト名を入力します。
ポートフィールドにポート番号を入力します。 SQL Serverのデフォルトポートは1433です。
ユーザー名フィールドにSQL Serverのユーザー名を入力します。
パスワードフィールドにSQL Serverのパスワードを入力します。
データベースフィールドに同期する予定のデータベース名を入力します。
任意です。 詳細設定を展開して、次の項目を設定します。
| フィールド | 説明 |
|---|---|
| 改善された日時処理を使用 | datetime、datetime2、およびdatetimeoffsetデータ型の拡張処理を有効にします。 デフォルトはtrueです。 詳細については、datetime処理の改善セクションを参照してください。 |
| データベースのタイムゾーン | データベースのローカルタイムゾーンを設定します。 datetimeおよびdatetime2値にタイムゾーンが指定されている場合、Workatoは処理前にそれらをこのタイムゾーンに変換します。 デフォルトはUTCです。 |
任意です。 SSL設定を展開して、コネクションの証明書ベースのセキュリティを設定します。
| フィールド | 説明 |
|---|---|
| サーバー証明書 | .pem形式でX.509サーバー証明書を指定します。 |
| SSL証明書 | .pem形式でX.509クライアント証明書を指定します。 |
| SSL証明書キー | RSAクライアントキーを.pem形式で指定します。 |
| すべて信頼 | クライアントに任意の証明書チェーンを信頼させます。 自己署名サーバー証明書のサポートを有効にします。 |
任意です。 プーリング設定を展開して、コネクションプールの動作を設定します。
| フィールド | 説明 |
|---|---|
| 最小プールサイズ | オンプレミスエージェントがプール内で維持するコネクションの最小数を入力します。これにはアイドル状態と使用中のコネクションが含まれます。 デフォルトは1です。 |
| 最大プールサイズ | プール内のコネクションの最大数を入力します。 プールがこの制限に達し、使用可能なアイドルコネクションがない場合、新しいコネクション試行はタイムアウトに達するまでブロックされます。 デフォルトは10です。 |
| アイドルタイムアウト | コネクションが削除されるまでプール内でアイドル状態を維持できる最大時間を秒単位で入力します。 値が0の場合、コネクションは削除されません。 デフォルトは600秒(10分)です。 |
| 最大有効期間 | プール内のコネクションの最大有効期間を秒単位で入力します。 この制限に達したコネクションは、最近使用された場合でも削除されます。 デフォルトは1800秒(30分)です。 |
| タイムアウト | プールからコネクションを取得するまで待機する最大時間を秒単位で入力します。 値が0の場合、タイムアウトはありません。 デフォルトは30秒です。 |
任意です。 SQL Serverコネクションの追加プロパティを展開し、パラメーターを追加を選択して、追加のJDBCコネクションパラメーターを渡します。
接続を選択して、コネクションを検証して保存します。
パイプラインの設定
SQL Serverをデータパイプラインソースとして設定するには、次の手順を実行します。
作成 > データパイプラインを選択するか、C+Iを押します。
データパイプライン名フィールドにデータパイプラインの名前を入力します。
データパイプライン設定
ロケーションドロップダウンメニューを使用して、データパイプラインを保存するプロジェクトを選択します。
ビルドを開始をクリックします。
ソースアプリから新規/更新済みレコードを抽出トリガーをクリックします。 このトリガーは、パイプラインがソースアプリケーションからデータを取得する方法を定義します。
ソースアプリから新規/更新済みレコードを抽出トリガーを設定
接続済みソースアプリドロップダウンメニューを使用して、SQL Serverを選択します。
このパイプラインで使用するSQL Serverコネクションを選択します。 または、+ 新規コネクションをクリックして新しいコネクションを作成します。
オブジェクトを追加をクリックして、新しいオブジェクトを追加パネルを開きます。
オブジェクトの追加
利用可能なSQL Serverオブジェクトのリストを検索または参照し、同期する予定のオブジェクトを選択して、追加をクリックします。
選択した各オブジェクトのスキーマを確認してカスタマイズします。 オブジェクトを選択すると、パイプラインはそのスキーマを自動的に取得し、宛先がソースと一致するようにします。
任意のオブジェクトを展開して、そのフィールドを表示します。 使用可能なすべてのデータを抽出するにはすべてのフィールドを選択したままにし、データ抽出とスキーマレプリケーションから除外するには特定のフィールドの選択を解除します。
任意です。 オブジェクトを展開し、各フィールドの処理方法を選択して、フィールドレベルのデータ保護を設定します。
- そのまま複製: ソースのデータ値が宛先に同一に複製されます。
- ハッシュ: 宛先に同期する前に、フィールド内の機密データ値をハッシュ化します。
さらにオブジェクトを追加するには、もう一度オブジェクトを追加をクリックします。 この手順を繰り返して、パイプラインに追加のSQL Serverオブジェクトを含めます。
スキーマ変更の処理方法を選択ドロップダウンメニューを使用して、スキーマドリフトの処理オプションを選択します。
- 新しいフィールドを自動同期: ソースに追加された新しいフィールドを自動的に検出して同期します。
- 新しいフィールドをブロック: パイプラインの開始後、スキーマを固定します。 新しいフィールドは手動で追加する必要があります。
頻度フィールドで、パイプラインがソースから宛先にデータを同期する頻度を設定します。 標準の時間ベースのスケジュールを選択するか、カスタムcron式を定義します。
サポートされるオブジェクト
SQL Serverデータパイプラインは、接続先データベース内のテーブルからデータを同期します。 Workatoは、パイプライン設定中にオブジェクトを追加を選択すると、接続先データベース内のすべてのスキーマにまたがる利用可能なテーブルを検出します。 パイプラインには、1つ以上のテーブルをオブジェクトとして追加できます。 SQL Server Change Trackingにはベーステーブルが必要なため、ビューはサポートされていません。
同期モード
SQL Serverデータパイプラインは、完全更新と増分同期をサポートしています。 同期モードは、パイプラインに追加するときにオブジェクトごとに設定されます。
完全更新
完全更新同期では、パイプライン実行ごとにソーステーブルからすべての行を読み取り、宛先テーブルを上書きします。 同期ごとにデータの完全なスナップショットが必要なテーブルには、完全更新を使用します。
増分同期
増分同期では、SQL Server Change Trackingを使用して、前回の同期実行が成功して以降の行レベルの挿入、更新、および削除を検出します。 Workatoは、タイムスタンプ列でフィルタリングするのではなく、Change Trackingログをクエリします。 パイプラインで増分同期を実行する前に、データベースレベルとテーブルレベルの両方でChange Trackingを有効にする必要があります。 設定手順については、Change Trackingの有効化を参照してください。
識別子の処理
Workatoパイプラインは、次のルールを適用してソース列名を有効な宛先識別子に変換します。
- 列名は大文字に変換されます。
$、スペース、ダッシュなどの特殊文字はアンダースコア(_)に置き換えられます。- 識別子は、予約語との競合を防ぐために角かっこで囲まれます。
たとえば、ソース列$Name$は宛先テーブルで[_NAME_]になります。
制限事項
SQL Serverをデータパイプラインソースとして使用する場合、次の制限事項が適用されます。
オブジェクトが表示されない
オブジェクトを追加を選択してもパイプラインにオブジェクトが表示されない場合は、次を確認してください。
- Change Trackingが有効になっていません。 Workatoがオブジェクトを検出できるようにする前に、データベースレベルとテーブルレベルでChange Trackingを有効にする必要があります。 必要なSQLコマンドについては、Change Trackingの有効化を参照してください。
- クラウドコネクションが選択されています。 パイプラインは、クラウドコネクション経由ではテーブルを検出できません。 コネクションタイプフィールドでオンプレミスグループに切り替えます。
オブジェクトなしエラー
オンプレミスエージェントのバージョン要件
Workatoでは、SQL Serverデータパイプラインをサポートするために、バージョン30以上のオンプレミスエージェントが必要です。 以前のバージョンはサポートされていません。 Workatoでは、利用可能な最新バージョンの使用を推奨しています。
最小同期頻度
サポートされる最小同期間隔は15分です。 これより高い頻度で同期をトリガーすることはできません。
Last updated:
同期頻度を設定