注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Microsoft SQL Server

Foundry を Microsoft SQL Server に接続して、SQL Server データベースと Foundry 間でデータを読み込みおよび同期します。

サポートされている機能

機能ステータス
バッチ同期🟢 一般提供
探索🟢 一般提供
インクリメンタル🟢 一般提供
変更データキャプチャ同期🟢 一般提供

セットアップ

  1. Data Connection アプリケーションを開き、画面右上の + New Source を選択します。
  2. 利用可能なコネクタタイプから MS SQL Server を選択します。
  3. インターネット経由で直接接続を使用するか、エージェントランタイム経由で接続するかを選択します。
  4. 以下のセクションの情報を使用して、コネクタのセットアップを続行するための追加の設定プロンプトに従います。

Foundry でコネクタをセットアップする方法について詳しくは、こちらをご覧ください。

認証

次の方法で SQL Server に認証できます。

  1. ユーザー名とパスワード:ユーザー名とパスワードを提供します。個々のユーザー資格情報ではなく、サービス資格情報の使用をお勧めします。
  2. Active Directory Msi*:このオプションでは、authentication=ActiveDirectoryMSI JDBC 設定を使用します。msiClientId をオプションで提供できます。
  3. Active Directory Password*:このオプションでは、authentication=ActiveDirectoryPassword JDBC 設定を使用します。この設定を使用するには、Active Directory ユーザーのユーザー名とパスワードを提供する必要があります。
  4. Active Directory Service Principal*:このオプションでは、authentication=ActiveDirectoryServicePrincipal JDBC 設定を使用します。プリンシパル ID(アプリケーション ID またはクライアント ID と呼ばれることがある)を指定し、そのプリンシパル ID のシークレットを指定する必要があります。

これらの認証モードの詳細については、公式ドキュメント (外部) を参照してください。すべての認証オプションで、提供されたユーザーとロールには、対象データベースの必要な権限が与えられていることを確認し、対象テーブルの読み取りまたは書き込みを許可するようにします。

* Azure Active Directory は現在、Microsoft Entra ID (外部)と呼ばれていますが、Microsoft が公開している SQL Server ドライバの JDBC オプションは、Active Directory を参照する元の名前を保持しています。

ネットワーキング

Microsoft SQL Server コネクタは、接続先の SQL Server インスタンスへのネットワークアクセスが必要です。SQL Server 接続では通常、ポート 1433 で接続するホスト名を使用します。

Foundry から SQL Server への直接接続を有効にするには、Data Connection アプリケーションでソースを設定する際に、適切なイグレスポリシーを追加する必要があります。

Azure SQL インスタンスの場合、Azure コンソールから取得したホスト名と解決された IP の両方に対してイグレスポリシーを追加する必要があります。解決された IP が変更されることがある場合は、新しい IP を許可するためにイグレスポリシーを更新する必要があります。Azure SQL インスタンスのパブリック IP アドレスに関する詳細は、Azure SQL Documentation (外部) を参照してください。

  • Azure SQL インスタンスのホスト名を見つけるには、Azure ポータルで Settings > Properties ページに移動し、Server Name フィールドを探します。Azure SQL のホスト名ベースのイグレスポリシーの例:<your-database-name>.database.windows.net (ポート 1433)
  • 解決された IP を見つけるには、コマンドラインから nslookup <your-database-name>.database.windows.net を実行します。最終結果は、このホスト名が Azure で解決される IP アドレスになります。以下は、Azure SQL の IPv4 ベースのイグレスポリシーの例です:x.x.x.x (ポート 1433)。Azure SQL は複数のホストでロードバランシングを行うため、nslookup コマンドを複数回実行し、解決されたすべての IP アドレスを追加する必要があります。

Azure でホストされている Foundry インスタンスから Azure SQL インスタンスに接続する場合、Proxy 接続ポリシーオプションを使用する必要があります。Azure 内で発生するトラフィックの場合、接続ポリシーはデフォルトで Redirect になります。Azure-Azure 接続にリダイレクトオプションを使用すると、すべての Azure SQL IP アドレスに対して、11000 から 11999 の範囲内のすべてのポートに対するイグレスポリシーを設定する必要があります。これは可能ですが、許可範囲が広すぎるためお勧めしません。Azure SQL 接続ポリシーの詳細については、公式の Azure SQL ドキュメント (外部) を参照してください。

エージェントランタイムで接続する場合、エージェントホストが MS SQL Server データベースに接続するために必要なホスト名、IP アドレス、ポートへのファイアウォールを開くようにする必要があります。

接続詳細

オプション必須?説明
Host typeはいFoundry が SQL Server データベースに接続する方法を指定します。

オプション 1:ホスト名
ホスト名を提供します。これは、すべての SQL Server 接続に推奨されるオプションであり、Azure SQL (外部) インスタンスに接続する場合は必ず使用する必要があります。

オプション 2:IPv4
IPv4 アドレスを提供します。通常、企業ネットワーク内またはインターネット経由で IPv4 アドレスを使用して接続する場合は、このオプションを使用できます。

オプション 3:IPv6
IPv6 アドレスを提供します。通常、IPv6 アドレスを使用して接続する場合は、このオプションを使用します。
Portはい接続時に使用するポートを指定します。ほとんどの SQL Server インスタンスのデフォルトポートは 1433 になります。ポートに関する詳細は、接続先の SQL Server のバージョンに関する公式ドキュメントを参照してください。
Database nameはいMS SQL Server インスタンス内で接続しているデータベースの名前です。
Authenticationはい上記に示す 認証 ガイダンスを使用して設定します。
Require encryptionはいデフォルトで有効化されます。詳細については、Microsoft の SQL Server JDBC ドライバの encrypt 設定に関するドキュメントを参照してください。

接続プロパティの参照 (外部)
暗号化サポートの例 (外部)
Trust server certificateはいデフォルトで無効化されます。詳細については、Microsoft の SQL Server JDBC ドライバの trustServerCertificate 設定に関するドキュメントを参照してください。

接続プロパティの参照
Network ConnectivityはいMS SQL Server インスタンスにネットワーク接続されたランタイムを提供する必要があります。企業のファイアウォールの背後にあるインスタンスでは、通常、エージェントランタイムを使用する必要があります。クラウドホストのインスタンスの場合は、詳細については ネットワーキング セクションを参照してください。

変更データキャプチャ

Microsoft SQL Server ソースは、変更データキャプチャ同期をサポートしています。

Microsoft SQL Server で変更データキャプチャを有効にするには、データベースで CDC を有効にする以下のようなコマンドを実行する必要があります。

USE <データベース>
GO
EXEC sys.sp_cdc_enable_db -- Change Data Captureを有効にするストアドプロシージャ
GO

次に、変更ログを記録する必要がある各テーブルで別のコマンドを実行してください:

-- Change Data Capture を有効にするためのストアドプロシージャを実行
EXEC sys.sp_cdc_enable_table
    @source_schema = N'<schema>'         -- スキーマ名を指定
  , @source_name = N'<table_name>'       -- 対象となるテーブル名を指定
  , @role_name = NULL                    -- ロール名 (NULL の場合はデフォルト)
  , @capture_instance = NULL             -- キャプチャインスタンス名 (NULL の場合はデフォルト)
  , @supports_net_changes = 0            -- 1:集約された変更をサポート, 0:サポートしない
  , @filegroup_name = N'PRIMARY';        -- ファイルグループ名を指定
GO

変更データキャプチャを同期したいテーブルに対して有効にしたら、概要ページに移動し、+ Create CDC sync を選択して新しい変更データキャプチャの同期を作成し始めることができます。

エクスプロレーションのランタイムが動作している必要があります。ランタイムがまだ初期化中の場合は、変更データキャプチャの同期を作成するために、数秒待ってからページを更新する必要があるかもしれません。

Microsoft SQL Server で変更データキャプチャ(CDC)を使用するには、これらのコマンドに関する詳細や、使用中の SQL Server のバージョンに関する 公式ドキュメント(外部)を参照してください。