次の方法で共有


Azure Synapse Link for SQL Server 2022 の概要

この記事は、Azure Synapse Link for SQL Server 2022 の使用を開始するための詳細なガイドです。 概要については、「Azure Synapse Link for SQL Server 2022」を参照してください。

前提条件

  • 開始する前に、「新しいAzure Synapse ワークスペースを作成する」を参照して、Azure Synapse Link for SQL を取得します。 このチュートリアルでは、パブリック ネットワークに Azure Synapse Link for SQL を作成します。 この記事では、Azure Synapse ワークスペースの作成時に [マネージド仮想ネットワークを無効にする][すべての IP アドレスからの接続を許可する] を選択していることを前提としています。 ネットワーク セキュリティを使用して Azure Synapse Link for SQL Server 2022 を構成する場合は、「ネットワーク セキュリティを使用して Azure Synapse Link for SQL Server 2022 を構成する」も参照してください。

  • Azure Data Lake Storage Gen2 アカウントを作成します。これは、Azure Synapse Analytics ワークスペースで作成するアカウントとは異なります。 このアカウントをランディング ゾーンとして使用して、SQL Server 2022 によって送信されたデータをステージします。 詳細については、Azure Data Lake Storage Gen2 アカウントの作成に関するページを参照してください。

  • SQL Server 2022 データベースにマスター キーが作成されていることを確認します。

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<a new password>'
    

ターゲット Azure Synapse SQL 専用プールを作成する

  1. Synapse Studio を開きます。

  2. [管理] ハブを開き、[SQL プール] に移動し、[新規] を選びます。

    Synapse Studio から新しい Azure Synapse SQL 専用プールを作成する方法を示すスクリーンショット。

  3. 一意のプール名を入力し、既定の設定を使用して、専用プールを作成します。

  4. [データ] ハブの [ワークスペース] で、[データベース] の下に新しい Azure Synapse SQL データベースが表示されます。 新しい Azure Synapse SQL データベースで、[新しいSQL スクリプト][空のスクリプト] の順に選びます。

    Synapse Studio から新しい空の SQL スクリプトを作成する方法を示すスクリーンショット。

  5. ターゲット Azure Synapse SQL データベースのマスター キーを作成するには、次のスクリプトを貼り付けて、[実行] を選びます。

    CREATE MASTER KEY
    

ソース SQL Server 2022 データベースのリンク サービスを作成する

  1. [管理ハブ] ボタン、[リンク サービス] の順に選びます。

    Synapse Studio からリンク サービスに移動します。

  2. [新規] を押し、[SQL Server] を選択し、[続行] を選択します。

    SQL サーバーのリンク サービスを作成する方法を示すスクリーンショット。

  3. [名前] ボックスに、SQL Server 2022 のリンク サービスの名前を入力します。

    接続するサーバーとデータベースの名前を入力する場所を示すスクリーンショット。

    Note

    レガシ バージョンのリンク サービスのみがサポートされています。

  4. 統合ランタイムを選ぶ場合は、セルフホステッド統合ランタイムを選びます。 Azure Synapse ワークスペースに使用可能なセルフホステッド統合ランタイムがない場合は、作成します。

  5. (省略可能) ソース SQL Server 2022 に接続するセルフホステッド統合ランタイムを作成するには、次の手順を実行します。

    a. [新規] を選択します。

    新しいセルフホステッド統合ランタイムを作成する方法を示すスクリーンショット。

    b. [セルフホステッド][続行] の順に選びます。

    c. [名前] ボックスにセルフホステッド統合ランタイムの名前を入力し、[作成] を選びます。

    セルフホステッド統合ランタイムの名前を入力する場所を示すスクリーンショット。

    Azure Synapse ワークスペースでセルフホステッド統合ランタイムが使用できるようになりました。

    d. 画面の指示に従って、キーのダウンロードとインストールを行い、そのキーを使用して、SQL Server 2022 インスタンスに直接アクセスできる Windows マシンに統合ランタイム エージェントを登録します。 詳細については、セルフホステッド統合ランタイムの作成 - Azure Data Factory と Azure Synapse に関するページを参照してください。

    統合ランタイムをダウンロード、インストール、登録する場所を示すスクリーンショット。

    e. [閉じる] を選択します。

    統合ランタイムの状態を取得する。

    f. 監視ページに移動し、[更新] を選択して統合ランタイムの最新の状態を取得して、セルフホステッド統合ランタイムが実行されていることを確認します。

  6. 続けて、[SQL Server 名][データベース名][認証の種類][ユーザー名][パスワード] など、SQL Server 2022 インスタンスに接続するためのリンク サービスの残りの情報を入力します。

    注意

    この接続で暗号化を有効にすることをお勧めします。 これを行うには、値が trueEncrypt プロパティを追加の接続プロパティとして追加します。 また、Trust Server Certificate プロパティを、サーバー構成に応じて true または false に設定します。 詳細については、「データベース エンジンへの暗号化接続の有効化」を参照してください。

  7. [テスト接続] を選択して、SQL Server インスタンス上でセルフホステッド統合ランタイムにアクセスできることを確認します。

  8. [作成] を選択します

    新しいリンク サービスは、ワークスペースで使用できる SQL Server 2022 インスタンスに接続されます。

    リンク サービス接続を表示する場所を示すスクリーンショット。

    注意

    ここで作成するリンク サービスは、Azure Synapse Link for SQL 専用ではありません。 これは、適切なアクセス許可を持つ任意のワークスペース ユーザーが使用できます。 時間を確保して、このリンク サービスとその資格情報にアクセスできるユーザーの範囲を把握します。 Azure Synapse ワークスペースのアクセス許可の詳細については、Azure Synapse ワークスペースのアクセス制御の概要 (Azure Synapse Analytics) に関するページを参照してください。

Azure Data Lake Storage Gen2 のランディング ゾーンに接続するリンク サービスを作成する

  1. 新しく作成した Azure Data Lake Storage Gen2 アカウントに移動し、[アクセス制御 (IAM)][追加][ロールの割り当ての追加] の順に選びます。

    Data Lake Storage Gen2 アカウントの [アクセス制御 (IAM)] ペインのスクリーンショット。

  2. 選択したロールに対して [ストレージ BLOB データ共同作成者] を選び、[マネージド ID] を選んでから [メンバー] でお使いの Azure Synapse ワークスペースを選びます。 このロールの割り当ての追加には数分かかる場合があります。

    ロールの割り当てを追加する方法を示すスクリーンショット。

    注意

    ランディング ゾーンとして使用される Azure Data Lake Storage Gen2 ストレージ アカウントに、Azure Synapse ワークスペース マネージド ID のアクセス許可が付与されていることを確認してください。 詳細については、Azure Synapse ワークスペースでマネージド ID にアクセス許可を付与する - Azure Synapse Analytics に関するページを参照してください。

  3. Azure Synapse ワークスペースで [管理] ハブを開き、[リンク サービス] に移動します。

    リンク サービスに移動する方法を示すスクリーンショット。

  4. [新規][Azure Data Lake Storage Gen2] の順に選びます。

  5. 次の操作を行います。

    a. [名前] ボックスに、ランディング ゾーンのリンク サービスの名前を入力します。

    b. [認証方法] に、マネージド ID を入力します。

    c. 既に作成されているストレージ アカウント名を選びます。

  6. [テスト接続] を選び、Azure Data Lake Storage Gen2 アカウントのアクセス権があることを確認します。

  7. [作成] を選択します

    新しいリンク サービスは、Azure Data Lake Storage Gen2 アカウントに接続されます。

    Azure Data Lake Storage Gen2 への新しいリンク サービスを示すスクリーンショット。

    注意

    ここで作成するリンク サービスは、Azure Synapse Link for SQL 専用ではありません。 これは、適切なアクセス許可を持つ任意のワークスペース ユーザーが使用できます。 時間を確保して、このリンク サービスとその資格情報にアクセスできるユーザーの範囲を把握します。 Azure Synapse ワークスペースのアクセス許可の詳細については、Azure Synapse ワークスペースのアクセス制御の概要 (Azure Synapse Analytics) に関するページを参照してください。

  1. Synapse Studio から、統合ハブを開きます。

  2. [統合] ペインで、プラス記号 (+) を選び、[リンク接続] を選びます。

    [リンク接続] ボタンを示すスクリーンショット。

  3. ソース データベースを入力します。

    a. [ソースの種類] には [SQL Server] を選びます。

    b、 ソース リンク サービスには、SQL Server 2022 インスタンスに接続するサービスを選びます。

    c. [テーブル名] には、Azure Synapse SQL プールにレプリケートする SQL Server インスタンスの名前を選びます。

    d. [続行] をクリックします。

    ソース データベースの詳細を入力する場所を示すスクリーンショット。

  4. [Synapse SQL 専用プール] からターゲット データベース名を選びます。

  5. [続行] をクリックします。

  6. リンク接続設定を入力します。

    a. [リンク接続名] に名前を入力します。

    b. リンク接続コンピューティング[コア数] に、コアの数を入力します。 これらのコアは、ソースからターゲットへのデータの移動に使用されます。 少ない数から始めて、必要に応じてカウントを増やすことをお勧めします。

    c. [リンク サービス] には、ランディング ゾーンに接続するサービスを選びます。

    d. Azure Data Lake Storage Gen2 のコンテナー名またはコンテナー/フォルダー名を、データをステージングするランディング ゾーン フォルダー パスとして入力します。 最初にコンテナーを作成する必要があります。

    e. Azure Data Lake Storage Gen2 共有アクセス署名トークンを入力します。 このトークンは、SQL 変更フィードがランディング ゾーンにアクセスするために必要です。 Azure Data Lake Storage Gen2 アカウントに共有アクセス署名トークンがない場合は、[トークンの生成] を選択して作成できます。

    f. [OK] を選択します。

    リンク接続設定を入力する場所を示すスクリーンショット。

    Note

    ここで選択したコアの数は、データの読み込みと変更を処理するためにインジェスト サービスに割り当てられます。 ターゲット専用の SQL プールの構成には影響しません。 ストレージからの制限により、生成された SAS トークンを使用してランディング ゾーンに接続できない場合は、委任 SAS トークンを使用してランディング ゾーンに接続することもできます。

  7. 新しい Azure Synapse Link 接続を開いた状態で、ターゲット テーブル名、配布の種類、構造の種類を更新できるようになりました。

    注意

    • データに varchar(max)、nvarchar(max)、varbinary(max) が含まれている場合は、構造の種類に "ヒープ テーブル" を使用することを検討してください。
    • リンク接続を開始する前に、Azure Synapse SQL 専用プールにスキーマが既に作成されていることを確認します。 Azure Synapse Link for SQL では、Azure Synapse SQL プールのスキーマの下にテーブルが自動的に作成されます。
  8. テーブルが宛先に既に存在する場合、[既存のターゲット テーブルに対するアクション] ドロップダウン リストで、シナリオに最適なオプションを選択します。

    • テーブルを削除して再作成: 既存のターゲット テーブルが削除され、再作成されます。
    • 空でないテーブルで失敗する: ターゲット テーブルにデータが含まれている場合、指定されたテーブルのリンク接続は失敗します。
    • 既存のデータとのマージ: データは既存のテーブルにマージされます。

    Note

    [既存のデータとのマージ] を選択して複数のソースを同じ宛先にマージする場合は、競合や予期しない結果を避けるために、ソースに異なるデータが含まれていることを確認します。

  9. テーブル間のトランザクション整合性を有効にするかどうかを指定します。

    • このオプションを有効にすると、ソース データベース上の複数のテーブルにまたがるトランザクションは、常に 1 つのトランザクションでコピー先データベースにレプリケートされます。 ただし、これにより、レプリケーションの全体的なスループットにオーバーヘッドが生じます。
    • このオプションを無効にすると、各テーブルの変更は、独自のトランザクション境界内で並列接続で宛先にレプリケートするため、レプリケーションの全体的なスループットが向上します。

    Note

    テーブル間でトランザクションの一貫性を保つには、Synapse 専用 SQL プールのトランザクション分離レベルが Read Committed スナップショット分離であることも確認してください。

  10. [すべて公開] を選択し、サービスに対する新しいリンク接続を保存します。

[開始] を選択して数分待つと、データがレプリケートされます。

注意

リンク接続は、ソース データベースの完全な初期読み込みから開始され、続いて SQL Server 2022 の変更フィード機能により増分変更フィードが行われます。 詳細については、「Azure Synapse Link for SQL の変更フィード」を参照してください。

Azure Synapse Link 接続の状態を監視し、最初にコピーされるテーブル ("スナップショット") の確認や、継続レプリケーション モードのテーブル ("レプリケート") を確認できます。

  1. Azure Synapse ワークスペースの [監視] ハブに移動し、[リンク接続] を選びます。

  2. 開始したリンク接続を開き、各テーブルの状態を表示します。

  3. 接続の監視ビューで [最新の情報に更新] を選択して、状態が更新を確認します。

    リンクされた接続を監視する。

レプリケートされたデータにクエリを実行する

数分待ってから、予期されるテーブルとデータがターゲット データベースにあることを確認します。 Azure Synapse SQL 専用プールの保存先ストアで使用可能なデータを確認します。 ここで、ターゲット Azure Synapse SQL 専用プール内のレプリケートされたテーブルを調べることもできます。

  1. [データ] ハブの [ワークスペース] で、ターゲット データベースを開きます。

  2. [テーブル] でターゲット テーブルのいずれかを右クリックします。

  3. [新しい SQL スクリプト] を選択してから [上位 100 行] を選びます。

  4. このクエリを実行して、ターゲット Azure Synapse SQL 専用プール内のレプリケートされたデータを表示します。

  5. Microsoft SQL Server Management Studio (SSMS) またはその他のツールを使用して、ターゲット データベースに対してクエリを実行することもできます。 ワークスペースの SQL 専用エンドポイントをサーバー名として使用します。 この名前は通常、<workspacename>.sql.azuresynapse.net です。 SSMS またはその他のツール経由で接続するときには、追加の接続文字列パラメーターとして Database=databasename@poolname を追加します。

Synapse Studio でテーブルを追加または削除するには、次の操作を行います。

  1. Azure Synapse ワークスペースで、[統合] ハブを開きます。

  2. 編集するリンク接続を選択して開きます。

  3. 以下のいずれかを実行します。

    • テーブルを追加するには、[新しいテーブル] を選びます。
    • テーブルを削除するには、その横にあるごみ箱アイコンを選びます。

    テーブルを追加または削除するためのリンク接続ペインのスクリーンショット。

    注意

    リンク接続が実行されているときに、直接、テーブルを追加または削除できます。

Synapse Studio で Azure Synapse Link 接続を停止するには、次の操作を行います。

  1. Azure Synapse ワークスペースで、[統合] ハブを開きます。

  2. 編集するリンク接続を選択して開きます。

  3. [停止] を選択してリンク接続を停止すると、データのレプリケートが停止します。

    リンク接続を停止するためのペインのスクリーンショット。

    Note

    • リンク接続を停止した後に再び開始すると、ソース データベースからの完全な初期読み込みから開始され、次に増分変更フィードが行われます。
    • 既存のターゲット テーブルに対するアクションとして [既存のデータとのマージ] を選択した場合、リンク接続を停止して再起動すると、その期間中にソースで削除されたレコードは宛先では削除されません。 このような場合、データの整合性を確保するには、停止/開始ではなく一時停止/再開を使用するか、リンク接続を再起動する前に宛先テーブルをクリーンアップすることを検討してください。

ランディング ゾーンの共有アクセス署名トークンをローテーションする

SQL 変更フィードがランディング ゾーンにアクセスし、そこにデータをプッシュするには、共有アクセス署名トークンが必要です。 有効期限が設定されているため、その日までにトークンをローテーションする必要があります。 そうしないと、Azure Synapse Link が、SQL Server インスタンスから Azure Synapse SQL 専用プールにデータをレプリケートできなくなります。

  1. Azure Synapse ワークスペースで、[統合] ハブを開きます。

  2. 編集するリンク接続を選択して開きます。

  3. [Rotate token](トークンのローテーション) を選択します。

    共有アクセス署名トークンをローテーションする場所を示すスクリーンショット。

  4. 新しい共有アクセス署名トークンを取得するには、[自動的に生成] または [手動で入力] を選び、[OK] を選びます。

    新しい共有アクセス署名トークンを取得する方法を示すスクリーンショット。

    Note

    ストレージからの制限により、生成された SAS トークンを使用してランディング ゾーンに接続できない場合は、委任 SAS トークンを使用してランディング ゾーンに接続することもできます。

次のステップ

SQL Server 2022 以外のデータベースを使用している場合は、次を参照してください。