次の方法で共有


Azure Data Factory FAQ

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、Azure Data Factory に関してよく寄せられる質問に対する回答を示します。

Azure Data Factory とは何ですか。

Data Factory は、データの移動や変換を自動化するフル マネージドのクラウドベースのデータ統合 ETL サービスです。 原材料を機械で加工して最終製品を作成する工場と同じように、Azure Data Factory は生データを収集してすぐに使用できる情報に変換する既存のサービスを調整します。

Azure Data Factory を使用すると、データ駆動型のワークフローを作成して、オンプレミスとクラウドのデータ ストア間でデータを移動できます。 また、Data Flow を使用してデータを処理したり変換したりすることができます。 ADF は、外部のコンピューティング エンジンもサポートしており、Azure HDInsight、Azure Databricks、SQL Server Integration Services (SSIS) 統合ランタイムなどのコンピューティング サービスを使用して、手動でコーディングされた変換を実行できます。

Data Factory を使用すると、Azure ベースのクラウド サービスか、SSIS、SQL Server、Oracle などの独自のセルフホステッド コンピューティング環境でデータ処理を実行できます。 必要なアクションを実行するパイプラインを作成した後で、それを毎時、毎日、毎週など、定期的に実行するようにスケジュールを設定できます (時間ウィンドウ スケジューリング)。また、イベントの発生によってパイプラインをトリガーすることもできます。 詳細については、Azure Data Factory の概要に関するページをご覧ください。

コンプライアンスとセキュリティに関する考慮事項

Azure Data Factory は、SOC 1、2、3HIPAA BAAHITRUSTなど、幅広いコンプライアンス認定で認定されています。 増え続けているすべての認定の一覧については、こちらを参照してください。 監査レポートとコンプライアンス認定のデジタル コピーについては、サービス トラスト センターを参照してください

フローとスケールの制御

最新のデータ ウェアハウスの多様な統合フローとパターンをサポートするため、Data Factory では、柔軟なデータ パイプライン モデルを利用できます。 これには、条件付き実行やデータ パイプラインの分岐、また、フロー内やフロー間でパラメーターを明示的に渡す機能など、制御フローの全面的なプログラミング パラダイムが必要です。 また、制御フローには、コピー アクティビティを介した大規模なデータ移動など、外部の実行エンジンへのアクティビティのディスパッチやデータ フローの機能を通じたデータの変換が含まれます。

Data Factory はデータ統合に必要な任意のフロー スタイルをモデル化し、それをオンデマンドで、またはスケジュールどおりに繰り返し送信することができます。 次の一般的なフローがこのモデルで有効になります。

  • 制御フロー:
    • アクティビティは、パイプライン内で連結して 1 つのシーケンスにすることができます。
    • アクティビティは、パイプライン内で分岐できます。
    • パラメーター:
      • パイプライン レベルでパラメーターを定義でき、オンデマンドで、またはトリガーからパイプラインを呼び出す際に引数を渡すことができます。
      • アクティビティは、パイプラインに渡される引数を使用できます。
    • カスタム状態の受け渡し:
      • 状態などのアクティビティ出力は、パイプライン内の後続のアクティビティで使用できます。
    • ループ コンテナー:
      • foreach アクティビティは、ループ内の指定されたアクティビティのコレクションに対して反復されます。
  • トリガー ベースのフロー:
    • パイプラインは、オンデマンドで、時刻によって、または Event Grid トピックに応じて、トリガーすることができます
  • 差分フロー:
    • オンプレミスまたはクラウド内のリレーショナル ストアからディメンションまたは参照テーブルを移動する間の差分コピーの最大値をパラメーターを使用して定義し、レイク内にデータを読み込みことができます。

詳細については、「チュートリアル:制御フローに関するページを参照してください。

コード不要のパイプラインを使用して大規模に変換されるデータ

この新しいブラウザーベースのツール エクスペリエンスは、最新のインタラクティブな Web ベースのエクスペリエンスにより、コード不要のパイプラインのオーサリングとデプロイを提供します。

ビジュアル データの開発者やデータ エンジニアにとっては、Data Factory Web UI がパイプラインのビルドに使用するコード不要のデザイン環境です。 それは Visual Studio Codespace Git と完全に統合されており、CI/CD およびデバッグ オプション付きの反復開発との統合を提供します。

詳しい知識のあるユーザー向けの豊富なクロス プラットフォーム SDK

Data Factory V2 の充実した SDK セットを使用すると、使い慣れた IDE でパイプラインを作成、管理、および監視できます。たとえば、次のものを使用できます。

  • Python SDK
  • PowerShell CLI
  • C# SDK

ユーザーは、文書化されている REST API を Data Factory V2 に対するインターフェイスとして使用することもできます。

ビジュアル ツールを使用した反復開発とデバッグ

Azure Data Factory ビジュアル ツールを使用すると、反復開発とデバッグを行うことができます。 パイプラインを作成し、パイプライン キャンバスのデバッグ機能を使用して、1 行もコードを記述せずにテストを実行できます。 テストの実行結果は、パイプライン キャンバスの [出力] ウィンドウに表示されます。 テストの実行が成功したら、パイプラインにさらにアクティビティを追加し、反復的な方法でデバッグを続行できます。 進行中になったテストをキャンセルすることもできます。

[デバッグ] を選択する前にデータ ファクトリ サービスの変更を発行する必要はありません。 これは、データ ファクトリのワークフローを更新する前に、新しい追加や変更が開発環境、テスト環境、運用環境で期待どおりに動作することを確認する場合に便利です。

SSIS パッケージを Azure にデプロイする機能

SSIS ワークロードを移動する場合は、データ ファクトリを作成し、Azure-SSIS 統合ランタイムをプロビジョニングできます。 Azure-SSIS 統合ランタイムは、クラウドでの SSIS パッケージの実行専用の、Azure VM (ノード) のフル マネージドのクラスターです。 詳しい手順については、「SSIS パッケージを Azure にデプロイする」チュートリアルを参照してください。

SDK

プログラマティック インターフェイスを必要とする詳しい知識のあるユーザー向けに、Data Factory では、使い慣れた IDE を使用してパイプラインを作成、管理、監視するために使用できる豊富な SDK セットが用意されています。 .NET、PowerShell、Python、REST などの言語がサポートされています。

監視

データ ファクトリは、PowerShell、SDK、またはブラウザー ユーザー インターフェイス内のビジュアル モニタリング ツールで監視できます。 オンデマンド、トリガー ベース、およびクロック駆動のカスタム フローで効果的かつ効率的に監視および管理できます。 既存タスクをキャンセルする、一目でエラーを確認する、ドリルダウンして詳細なエラー メッセージを取得する、問題をデバッグするなど、コンテキストを切り替えたり、画面を前後に移動したりすることなく、すべて 1 つのウィンドウで行うことができます。

Data Factory の SSIS の新機能

2017 年のパブリック プレビュー リリースより、Data Factory は SSIS に次の機能を追加しています。

統合ランタイムについて

統合ランタイムは、さまざまなネットワーク環境間で以下のデータ統合機能を提供するために Azure Data Factory で使用されるコンピューティング インフラストラクチャです。

  • データ移動:データ移動では、統合ランタイムは移動元と移動先のデータ ストア間でデータを移動しながら、組み込みのコネクタ、形式変換、列マッピング、および高性能でスケーラブルなデータ転送のサポートを提供します。
  • データ フロー: データ フローについては、マネージド Azure コンピューティング環境でデータ フローを実行します。
  • アクティビティの送信: 変換では、統合ランタイムは、SSIS パッケージをネイティブに実行する機能を提供します。
  • SSIS パッケージの実行: 統合ランタイムは、マネージド Azure コンピューティング環境で SSIS パッケージをネイティブに実行します。 統合ランタイムでは、Azure HDInsight、Azure Machine Learning、SQL Database、SQL Server などのさまざまなコンピューティング サービス上で実行される変換アクティビティのディスパッチや監視もサポートされています。

データの移動と変換に必要な 1 つ以上の統合ランタイム インスタンスをデプロイできます。 統合ランタイムは、Azure パブリック ネットワークまたはプライベート ネットワーク (オンプレミス、Azure Virtual Network、またはアマゾン ウェブ サービス Virtual Private Cloud (VPC)) 上で実行できます。 Data Factory で、アクティビティは、実行されるアクションを定義します。 リンクされたサービスは、ターゲットのデータ ストアやコンピューティング サービスを定義します。 統合ランタイムは、アクティビティとリンクされたサービスとを橋渡しします。 リンクされたサービスまたはアクティビティによって参照され、アクティビティが実行されたりディスパッチされたりするコンピューティング環境を提供します。 これにより、できるだけターゲットのデータ ストアやコンピューティング サービスに近いリージョンでアクティビティを実行して効率を最大化できる一方、セキュリティとコンプライアンスの必要も満たせます。

統合ランタイムは、管理ハブおよびそれらを参照するすべてのアクティビティ、データセット、またはデータ フローを使用して、Azure Data Factory UX で作成できます。 詳細については、「Azure Data Factory の統合ランタイム」を参照してください。

Integration Runtime 数の制限

1 つのデータ ファクトリに含めることができる統合ランタイム インスタンスの数に厳密な制限はありません。 ただし、SSIS パッケージの実行について、1 サブスクリプションにつき統合ランタイムが使用できる VM コア数には制限があります。 詳細については、「Data Factory の制限」を参照してください。

Azure Data Factory の最上位の概念とは

1 つの Azure サブスクリプションで 1 つ以上の Azure Data Factory インスタンス (データ ファクトリ) を利用できます。 Azure Data Factory には、プラットフォームとして連携する 4 つの主要コンポーネントが含まれます。このプラットフォームを基盤とし、データ移動とデータ変換のステップを含んだデータ主導型のワークフローを作成することができます。

パイプライン

データ ファクトリは、1 つまたは複数のパイプラインを持つことができます。 パイプラインは、1 つの作業単位を実行するための複数のアクティビティから成る論理的なグループです。 パイプライン内のアクティビティがまとまって 1 つのタスクを実行します。 たとえば、Azure BLOB からデータを取り込み、HDInsight クラスターで Hive クエリを実行してデータを分割するアクティビティのグループをパイプラインに含めることができます。 パイプラインには、アクティビティをセットとして管理でき、個別に管理せずに済むというメリットがあります。 パイプライン内のアクティビティは、連鎖して順次処理することも、独立して並行処理することもできます。

データ フロー

データ フローは、バックエンドの Spark サービスで大規模なデータを変換するオブジェクトです。Data Factory で視覚的に作成します。 プログラミングや Spark 内部についての知識は必要ありません。 グラフ (マッピング) またはスプレッドシート (Power Query アクティビティ) を使用してデータ変換の意図を設計するだけです。

Activities

アクティビティは、パイプライン内の処理ステップを表します。 たとえば、コピー アクティビティを使用して、データ ストア間でデータをコピーできます。 同様に、Azure HDInsight クラスターに対して Hive クエリを実行する Hive アクティビティを使用して、データを変換または分析できます。 Data Factory では、データ移動アクティビティ、データ変換アクティビティ、制御アクティビティの 3 種類のアクティビティがサポートされています。

データセット

データセットは、データ ストア内のデータ構造を表しています。アクティビティ内でデータを入力または出力として使用したい場合は、そのデータをポイントまたは参照するだけで済みます。

リンクされたサービス

リンクされたサービスは、接続文字列によく似ており、Data Factory が外部リソースに接続するために必要な接続情報を定義します。 リンクされたサービスはデータ ソースへの接続を定義するもので、データセットはデータの構造を表すもの、と捉えることができます。 たとえば、Azure Storage のリンクされたサービスでは、Azure Storage アカウントに接続するための接続文字列を指定します。 また、データを格納する BLOB コンテナーやフォルダーは、Azure BLOB データセットで指定します。

Data Factory では、リンクされたサービスは 2 つの目的に使用されます。

  • SQL Server インスタンス、Oracle データベース インスタンス、ファイル共有、Azure Blob Storage アカウント、その他の "データ ストア" を表すため。 サポートされるデータ ストアの一覧については、「Azure Data Factory のコピー アクティビティ」を参照してください。
  • アクティビティの実行をホストできる コンピューティング リソース を表すため。 たとえば、HDInsight Hive アクティビティは HDInsight Hadoop クラスターで実行されます。 変換アクティビティとサポートされているコンピューティング環境の一覧については、「Azure Data Factory でデータを変換する」を参照してください。

トリガー

トリガーは、パイプラインの実行をいつ開始するかを決定する処理単位を表します。 さまざまな種類のイベントに合わせて、さまざまな種類のトリガーがあります。

パイプライン実行

パイプライン実行は、パイプラインを実行するインスタンスです。 通常は、パイプラインで定義されたパラメーターに引数を渡すことで、パイプライン実行をインスタンス化します。 引数は、手動で渡すことも、トリガー定義内で渡すこともできます。

パラメーター

パラメーターは、読み取り専用構成のキーと値のペアです。 パラメーターはパイプラインで定義し、定義されたパラメーターの引数を実行時に実行コンテキストから渡します。 実行コンテキストは、トリガーによって、または手動で実行するパイプラインから作成されます。 パイプライン内のアクティビティは、パラメーターの値を使用します。

データセットとは、厳密に型指定されたパラメーターと、再利用または参照可能なエンティティのことです。 アクティビティは、データセットを参照でき、データセットの定義で定義されたプロパティを使用できます。

リンクされたサービスも厳密に型指定されたパラメーターであり、これにはデータ ストアかコンピューティング環境への接続情報が入ります。 これも、再利用または参照可能なエンティティです。

制御フロー

制御フローは、パイプライン アクティビティを調整します。これには、シーケンス内のアクティビティの連鎖、分岐、パイプライン レベルで定義するパラメーター、オンデマンドかトリガーからパイプラインを起動した際に渡す引数が含まれます。 さらに、カスタム状態の受け渡しや、ループ コンテナー (つまり foreach 反復子) も制御フローに含まれます。

Data Factory の概念について詳しくは、次の記事をご覧ください。

Data Factory の価格モデル

Azure Data Factory の価格の詳細については、Data Factory の価格の詳細に関するページを参照してください。

Data Factory の最新情報を入手するにはどうすればよいですか。

Azure Data Factory の最新情報を入手するには、次のサイトを参照してください。

技術的な詳細情報

Azure Data Factory のインスタンスはいくつ必要ですか?

この質問に対する答えは、組織が採用しているセキュリティ モデルによって異なります。 Data Factory の各インスタンスは、最低特権アクセスを念頭に置いてスコープを設定する必要があります。 これは、Data Factory の 1 つのインスタンスがすべての人事ワークロードをサポートし、別のインスタンスがすべての財務データをサポートするという状況になる可能性があります。 Data Factory の各インスタンスは異なるリンク サービスにアクセスできます。各インスタンスは異なる開発チームによってサポートされる可能性があります。 コンピューティングの増分に基づいて課金されるため、追加コストは発生しません。したがって、Data Factory の 1 つのインスタンスで同じ 100 のパイプラインを使用する場合、Data Factory の 10 のインスタンスで 10 のパイプラインを使用する場合と同じコストになります。

パイプラインのスケジュールを設定するにはどうすればよいですか。

パイプラインのスケジュールを設定するには、スケジューラのトリガーか時間ウィンドウ トリガーを使用できます。 トリガーでは、実時間カレンダー スケジュールが使用されます。これにより、定期的に、またはカレンダーベースの周期パターン (毎週月曜日午後 6 時 00 分、毎週木曜日午後 9 時 00 分など) でパイプラインをスケジュールできます。 詳細については、パイプラインの実行とトリガーに関するページを参照してください。

実行されるパイプラインにパラメーターを渡すことはできますか。

はい。パラメーターは Data Factory でファースト クラスの最上位の概念です。 パイプライン レベルでパラメーターを定義し、パイプライン実行をオンデマンドで実行するときまたはトリガーを使用して実行するときに、引数を渡すことができます。

パイプライン パラメーターの既定値は定義できますか?

はい。 パイプラインではパラメーターの既定値を定義できます。

パイプラインのアクティビティはパイプライン実行に渡される引数を使用できますか?

はい。 パイプライン内の各アクティビティは、パイプラインに渡されて @parameter コンストラクトで実行されるパラメーター値を使用できます。

アクティビティの出力プロパティは別のアクティビティで使用できますか?

はい。 アクティビティの出力は、@activity コンストラクトを使用して後続のアクティビティで使用できます。

アクティビティの出力で null 値を適切に処理するにはどうすればよいですか?

式で @coalesce コンストラクトを使用すると、null 値を適切に処理できます。

同時に実行できるパイプライン アクティビティの数

最大 50 個の同時パイプライン アクティビティが許可されます。 51 番目のパイプライン アクティビティは、"空きスロット" が開放されるまでキューに登録されます。 最大 800 個の同時外部アクティビティが許可され、その後、同じ方法でキューに入れられます。

データ フローのマッピング

データ フロー ロジックのトラブルシューティングのサポートが必要です。 サポートを受けるには、どのような情報を用意すればよいですか?

Microsoft では、データ フローに関するサポートやトラブルシューティングを行っています。ADF パイプライン サポート ファイルをご用意ください。 この Zip ファイルには、データ フロー グラフの分離コード スクリプトが含まれています。 ADF UI からパイプラインの横にある [...] を選択し、[Download support files](サポート ファイルのダウンロード) を選択します。

Data Factory で他の 90 個のデータセット型を使用してデータにアクセスする方法はありますか?

現在、マッピング データ フロー機能では、ネイティブのソースおよびシンクとして、Azure SQL Database、Azure Synapse Analytics のほか、Azure Blob Storage または Azure Data Lake Storage Gen2 からの区切りテキスト ファイル、および BLOB ストレージまたは Data Lake Storage Gen2 からの Parquet ファイルが許可されています。

コピー アクティビティを使用して、データを他の任意のコネクタから段階的に送り、Data Flow のアクティビティを実行してステージングの後にデータを変換します。 たとえば、まずパイプラインを BLOB ストレージにコピーし、次に Data Flow のアクティビティでソースのデータセットを使用して、データを変換します。

データ フローにセルフホステッド統合ランタイムは使用できますか?

セルフホステッド IR は ADF パイプライン コンストラクトであり、コピー アクティビティと共に使用して、オンプレミスまたは VM ベースのデータ ソースおよびシンクに対してデータを取得または移動することができます。 セルフホステッド IR に使用する仮想マシンは、保護されたデータ ストアと同じ VNET 内に配置して、ADF からそれらのデータ ストアにアクセスすることもできます。 データ フローを使用すると、代わりにマネージド VNET で Azure IR を使用して、これらと同じ最終結果を得ることができます。

データ フロー コンピューティング エンジンは複数のテナントにサービスを提供しますか?

クラスターが共有されることはありません。 運用環境で実行されるジョブごとの分離が保証されています。 デバッグ シナリオの場合、1 人のユーザーが 1 つのクラスターを取得し、そのユーザーによって開始されるそのクラスターにすべてのデバッグが送られます。

属性を ADF データ フローのシンクで指定されているのと同じ順序で Cosmos DB に書き込む方法はありますか?

Cosmos DB では、各ドキュメントの基になる形式は、順序付けられていない名前と値のペアである JSON オブジェクトであるため、順序を予約することはできません。

ユーザーがデータ フローでデータ プレビューを使用できないのはなぜですか?

カスタム ロールのアクセス許可を確認してください。 データフロー データのプレビューには複数のアクションが関係しています。 まず、ブラウザーでデバッグ中にネットワーク トラフィックをチェックします。 すべてのアクションに従ってください。詳細については、リソース プロバイダーに関するページを参照してください。

ADF では、マッピングからの既存の列から新しい列の値を計算できますか?

マッピング データ フローで派生変換を使用して、必要なロジックに新しい列を作成できます。 派生列を作成するときは、新しい列を生成するか、既存の列を更新することができます。 [列] ボックスに、作成する列を入力します。 スキーマ内の既存の列を上書きするには、列ドロップダウンを使用できます。 派生列の式を作成するには、[式の入力] ボックスを選択します。 式の入力を開始するか、式ビルダーを開いてロジックを作成することができます。

マッピング データ フローのプレビューがゲートウェイのタイムアウトで失敗するのはなぜですか?

より大きなクラスターを使用し、デバッグ出力のサイズを小さくするために、デバッグ設定の行制限を利用して値を小さくしてみてください。

データフローの列名をパラメーター化する方法は?

列名は、他のプロパティと同様にパラメーター化できます。 例えば、派生カラムでは、$ColumnNameParam = toString(byName($myColumnNameParamInData)) を使用できます。これらのパラメータは、パイプラインの実行からデータ フローに渡すことができます。

TTL とコストに関するデータ フローのアドバイザリ

このトラブルシューティング ドキュメントは、マッピング データ フローのパフォーマンスとチューニングのガイド - Time to live に関する問題の解決に役立つ場合があります。

Power Query データ ラングリング

データ ラングリングでサポートされているリージョンを教えてください。

データ ファクトリは、以下の 地域 で利用できます。Power Query 機能は、すべてのデータフロー地域で利用できます。 ご使用のリージョンでこの機能を利用できない場合は、サポートにお問い合わせください。

マッピング データ フローと Power Query アクティビティ (データ ラングリング) にはどのような違いがありますか。

データ フローのマッピングには、コーディングなしでデータを大規模に変換する機能が備わっています。 データ フロー キャンバスで一連の変換を構築することで、データ変換ジョブを設計できます。 任意の数のソースの変換から始め、その後にデータ変換手順を実行します。 シンクを使ってデータ フローを完了し、結果を宛先に書き込みます。 データ フローのマッピングは、シンクとソース内の既知のスキーマと不明なスキーマの両方でのデータのマップや変換に最適です。

Power Query データ ラングリングを使うと、Spark の実行を通じて Power Query Online マッシュアップ エディターを大規模に使用して、アジャイルなデータ準備と探索を行うことができます。 データ レイクの使用が増加するなか、単にデータセットを探索したり、レイクにデータセットを作成したりしたい場合があります。 既知のターゲットにマッピングするのでなければ、

サポートされている SQL の型

Power Query データ ラングリングでは、SQL で次のデータ型がサポートされています。 サポートされていないデータ型を使用すると、検証エラーが表示されます。

  • short
  • double
  • real
  • float
  • char
  • nchar
  • varchar
  • nvarchar
  • 整数 (integer)
  • INT
  • bit
  • boolean
  • smallint
  • tinyint
  • bigint
  • long
  • text
  • date
  • datetime
  • datetime2
  • smalldatetime
  • timestamp
  • UNIQUEIDENTIFIER
  • xml

データ ファクトリを作成する手順については、次のチュートリアルをご覧ください。