使用できるデータ移動ツールを理解する

完了

REST エンドポイントは、Azure SQL Database にデータをインポートするのに役立つリソースです。 ただし、データ移動用のその他のツールには、 Azure Data Factory (ADF)一括コピー プログラム (BCP)、SQL Server インポートおよびエクスポート ウィザード、Azure CLI と PowerShell のスクリプトなどがあります。 これらのツールには、データ移動のさまざまなオプションが用意されており、それぞれ異なるシナリオに適しています。

このユニットでは、これらのツールの一部をステップバイステップで例を紹介し、その他のツールについて詳しく説明します。

SQL データ同期を使用してデータを同期する

SQL データ同期 は、クラウドとオンプレミスの両方で複数のデータベース間でデータを同期できる Azure SQL Database の機能です。 この機能は、データの整合性を維持し、ハイブリッド クラウド シナリオを実現するために不可欠です。 SQL データ同期は、複数のデータベース間で選択したデータを双方向に同期できる Azure SQL Database 上にビルドされたサービスです。 ハブアンドスポーク トポロジが使用され、1 つのデータベースがハブとして機能し、他のデータベースがメンバーとして機能します。 ハブ データベースは Azure SQL Database である必要があり、メンバー データベースには Azure SQL Database または SQL Server データベースを使用できます。

SQL データ同期アーキテクチャを示す図。

SQL データ同期の設定

  1. 同期グループを作成します。 データ同期を設定するには、Azure portal にサインインし、Azure SQL Database に移動します。 [ データ管理 ] セクションで、[ 他のデータベースに同期] を選択します。 次に、[ 新しい同期グループ ] を選択し、同期グループ名と同期メタデータ データベースを含む同期グループの設定を構成します。

    Azure portal でデータ同期グループを作成する方法を示すスクリーンショット。

  2. 同期メンバーを追加します。 同期するデータベースを追加するには、他の Azure SQL Database またはオンプレミスの SQL Server データベースを含めることができます。 オンプレミス データベースの場合は、ローカル同期エージェントをインストールして構成する必要があります。

  3. 同期設定を構成する: 同期スキーマを定義するには、同期するテーブルと列を指定します。 同期の方向 (双方向、ハブからメンバー、またはメンバーからハブ) と同期の頻度を設定します。 最後に、データの競合を処理するために、競合解決ポリシー (ハブ優先またはメンバー優先) を選択します。

  4. 同期の監視と管理: 同期の状態とログを監視するには、Azure portal を使用します。 同期エラーを確認し、必要に応じて解決します。

Azure Data Factory を使用して Azure SQL Database 内のデータを操作する

Azure Data Factory (ADF) は、データ移動とデータ変換を調整および自動化するためのデータドリブン ワークフローを作成できる、フル マネージドのクラウドベースのデータ統合サービスです。 さまざまなデータ ソースと変換先、複雑なハイブリッド抽出 - 変換 - 読み込み (ETL)、抽出 - 読み込み - 変換 (ELT) プロセスがサポートされているため、データ統合タスク用の汎用性の高いツールです。

ADF を使用すると、独自のデータ オーケストレーションと統合プロセスを設計できます。

  1. Data Factory リソースを作成します。 これは、すべてのデータ統合および変換アクティビティをカプセル化するリソースです。

    • Azure portal で、[ リソースの作成 ] に移動し、 "データ ファクトリ" を検索します。
    • サブスクリプション、リソース グループ、リージョンなどの必要な詳細を入力し、[ 作成] を選択します。
  2. リンクされたサービスを作成します。 リンクされたサービスは、データ ソースと宛先の接続情報を定義するために使用されます。

    • Azure Data Factory で、[ 管理 ] を選択し、[ リンクされたサービス] を選択します。
    • 必要な接続の詳細を指定して、Azure SQL Database の新しいリンク サービスを作成します。
  3. データセットの作成: データセットは、パイプライン内のアクティビティが使用するデータ ストア内のデータ構造を表します。

    • Azure Data Factory で、[ 作成者 ] タブに移動します。
    • + (プラス) を選択し、[データセット] を選択します。
    • データ ストアの種類 (Azure SQL Database、Azure Blob Storage など) を選択します。 また、必要な接続の詳細とデータセットのプロパティを指定します。
  4. パイプラインを作成します。 パイプラインは、作業単位を実行するアクティビティの論理的なグループです。

    • Azure Data Factory で 作成者 を選択して、新しいパイプラインを作成します。
    • データのコピー アクティビティをパイプラインに追加して、ソース データセットからコピー先データセットにデータをコピーします。
  5. パイプラインを実行します。 パイプラインを実行すると、構成した一連のアクティビティが実行されます。

    • パイプラインをトリガーして、データ コピーのプロセスを開始します。
    • パイプライン実行を監視して、データが正常にインポートされていることを確認します。

BACPAC を使用してデータをインポートおよびエクスポートする

BACPAC ファイルは、データベース スキーマとデータを含む .bacpac の拡張子を持つ ZIP ファイルです。 これは、データベースの移行、バックアップ、アーカイブの目的で使用されます。 データベースを BACPAC ファイルにエクスポートして Azure Blob Storage またはオンプレミスに格納し、後で Azure SQL Database、Azure SQL Managed Instance、または SQL Server にインポートし直すことができます。 また、BACPAC ファイルを使用して、データのサブセットのみをインポートすることもできます。 この柔軟性により、データ移動へのアプローチをさらにカスタマイズできます。

BACPAC ファイルを使用してデータをインポートおよびエクスポートするには、Azure portal と SQL Server Management Studio (SSMS) を使用しますが、 SQLPackage ユーティリティを使用することもできます。

次のコマンド例を実行して、SQLPackage を使用して BACPAC ファイルにデータをインポートします。 次のスクリプトの <ServerName><DatabaseName><UserName><Password><PathToBacpacFile> を実際のサーバー名、データベース名、ユーザー資格情報、BACPAC ファイルのパスに置き換えます。

sqlpackage.exe /Action:Import /tsn:<ServerName> /tdn:<DatabaseName> /tu:<UserName> /tp:<Password> /sf:<PathToBacpacFile>

次のコマンド例を実行して、SQLPackage を使用して BACPAC ファイルにデータをエクスポートします。

sqlpackage.exe /Action:Export /ssn:<ServerName> /sdn:<DatabaseName> /su:<UserName> /sp:<Password> /tf:<PathToBacpacFile>

一括コピー プログラム (BCP) を使用する

BCP ユーティリティは、テーブルをインポートできるようにファイルにエクスポートするコマンド ライン ツールです。 このアプローチを使うと、1 つの SQL Database から SQL Managed Instance に移行して戻すことができます。

SQL Server インポートおよびエクスポート ウィザードを使用する

SQL Server インポートおよびエクスポート ウィザードは、SQL Server と多くのデータ ソースの間でデータをインポートおよびエクスポートするための SSMS 内のグラフィカル ツールです。 SQL Server インポートおよびエクスポート ウィザードの利点は、SQL Server Integration Services (SSIS) を使用してデータ コピーすることです。 SSIS は、SQL Server および Azure SQL Database インスタンスの両方で実行できる抽出、変換、読み込み (ETL) プロセスを作成するための高度に構成可能なツールです。

Azure CLI と PowerShell を使用する

Azure CLI と PowerShell の両方でスクリプトを使用して、インポートとエクスポートのプロセスを自動化できます。 インポートまたはエクスポートにスクリプトを使用することは CI/CD パイプラインへの統合に適していますが、他の方法と比較して各スクリプトに高度なカスタマイズが必要です。

データのエクスポートとインポートに使用できる他のツールの詳細については、「 SQL Server と Azure SQL Database からのデータのインポートとエクスポート」を参照してください。