Azure Storageからデータを取得する

この記事では、Azure Storage (Azure Data Lake Storage Gen2 コンテナー、BLOB コンテナー、または個々の BLOB) から KQL データベース内のテーブルにデータを取得する方法について説明します。 データは継続的に取り込むか、1 回限りインジェストとして取り込むことができます。 インジェストが完了すると、データをクエリに使用できるようになります。

  • 継続的インジェスト (プレビュー): 継続的インジェストは、eventhouse がAzure Storageイベントをリッスンできるようにするインジェスト パイプラインを設定します。 パイプラインは、サブスクライブされたイベントが発生したときに情報を引き出すようにイベントハウスに知らせます。 イベントは BlobCreatedBlobRenamed です

  • 一時インジェスト: このメソッドを使用して、Azure Storageから 1 回限りの操作としてデータを取得します。

    手記

    • 継続的インジェスト ストリームは、課金に影響する可能性があります。 詳細については、「 Eventhouse と KQL Database の使用」を参照してください。

前提 条件

継続的インジェストの前提条件

Azure 内で:

  • Event Grid リソース プロバイダーをAzure サブスクリプションに登録します。
  • ストレージ BLOB データ閲覧者ロールのアクセス許可をワークスペース ID に割り当てます。
  • データ ファイルを保持する BLOB コンテナー作成します。
    • データ ファイルをアップロードします。 データ ファイル構造は、テーブル スキーマの定義に使用されます。 詳細については、「Real-Time Intelligence でサポートされるデータ形式の」を参照してください。

      手記

      データ ファイルをアップロードする必要があります。

      • セットアップ中にテーブル スキーマを定義する 構成 の前。
      • 継続的インジェストをトリガーする構成の後、データをプレビューし、接続を確認します。

      手記

      ストレージ アカウントがプライベート エンドポイント (Private Link) で構成されている場合、Azure Storageからの継続的なインジェストもサポートされます。 Fabric ワークスペースが、構成されたプライベート ネットワーク パスを介してストレージ アカウントにアクセスできることを確認します。

ワークスペース ID ロールの割り当てをストレージ アカウントに追加する

  1. Fabricのワークスペース設定から、ワークスペース ID をコピーします。

    ワークスペース ID が強調表示されているワークスペース設定のスクリーンショット。

  2. Azure ポータルで、Azure Storage アカウントを参照し、Access Control (IAM)>Add>ロールの割り当ての追加 を選択します。

  3. [ストレージ BLOB データ リーダー] を選択します

  4. [ ロールの割り当ての追加 ] ダイアログで、[ + メンバーの選択] を選択します。

  5. ワークスペース ID を貼り付け、アプリケーションを選択し、 Select>Review + assign を選択します。

BLOB コンテナーを作成してデータ ファイルをアップロードする

  1. ストレージ アカウントで、[コンテナー] を選択 します

  2. [ + コンテナー] を選択し、コンテナーの名前を入力して、[ 保存] を選択します。

  3. コンテナーを入力し、[ アップロード] を選択して、前に準備したデータ ファイルをアップロードします。

    詳細については、 サポートされている形式サポートされている圧縮を参照してください。

  4. コンテキスト メニュー [...] から[コンテナーのプロパティ] を選択し、構成中に入力する URL をコピーします。

    コンテキスト メニューが開き、[コンテナーのプロパティ] オプションが強調表示されているコンテナーの一覧のスクリーンショット。

データ ソースとして Azure Storage を選択する

データの取得フローを開き、ソースとしてAzure Storageを選択します。

  1. ワークスペースからイベントハウスを開き、データベースを選択します。

  2. KQL データベース リボンで、[データの 取得] を選択します。

  3. 使用可能な一覧からデータ ソースを選択します。 この例では、Azure Storageからデータを取り込んでいる

    Azure ストレージ オプションが強調表示されているデータ取得タイルのスクリーンショット。

構成

  1. 変換先テーブルを選択します。 新しいテーブルにデータを取り込むには、[ + 新しいテーブル ] を選択し、テーブル名を入力します。

    手記

    テーブル名は、スペース、英数字、ハイフン、アンダースコアなど、最大 1,024 文字まで指定できます。 特殊文字はサポートされていません。

  2. [Azure Blob Storage接続の構成] で、[継続的インジェスト] がオンになっていることを確認します。 既定ではオンになっています。

  3. 新しい接続を作成するか、既存の接続を使用して接続を構成します。

    新しい接続の作成:

    1. [ ストレージ アカウントに接続] を選択します

      [継続的インジェストとアカウントへの接続] が選択されている [構成] タブのスクリーンショット。

    2. フィールドの入力に次の説明を使用してください。

      設定 フィールドの説明
      サブスクリプション ストレージ アカウント サブスクリプション。
      Blob ストレージ アカウント ストレージ アカウント名。
      コンテナ 取り込むファイルを含むストレージ コンテナー。
    3. [接続] フィールドでドロップダウンを開き、[+ 新しい接続] を選択し、[>閉じる] を選択します。 接続設定が事前に設定されています。

    手記

    新しい接続を作成するときは、新しいイベントストリームも作成します。 名前は <storage_account_name>_eventstreamとして定義されます。 ワークスペースから継続的インジェスト イベントストリームを削除しないでください。

    既存の接続を使用するには:

    1. [ 既存のストレージ アカウントの選択] を選択します

      [継続的インジェストと既存のアカウントへの接続] が選択されている [構成] タブのスクリーンショット。

    2. フィールドの入力に次の説明を使用してください。

      設定 フィールドの説明
      RTAストレージアカウント Fabricからストレージ アカウントに接続されているイベントストリーム。
      コンテナ 取り込むファイルを含むストレージ コンテナー。
      接続 このフィールドには、接続文字列があらかじめ入力されています。
    3. Connection フィールドでドロップダウンを開き、リストから既存の接続文字列を選択します。 [ 保存]>[閉じる]を選択します。

  4. 必要に応じて、[ ファイル フィルター] を 展開し、次のフィルターを指定します。

    設定 フィールドの説明
    フォルダー パス 特定のフォルダー パスを使用してファイルを取り込むためのデータをフィルター処理します。
    ファイル拡張子 データをフィルター処理して、特定のファイル拡張子のみを持つファイルを取り込みます。
  5. [Eventstream 設定] セクションで、[詳細設定] で監視するイベント>Event の種類を選択します。 既定では、Blob 作成が選択されています。 名前が変更された BLOB を選択することもできます。

    [イベントの種類] ドロップダウンが展開された [詳細設定] のスクリーンショット。

  6. [ 次へ ] を選択してデータをプレビューします。

インジェスト前にプレビュー データを検査する

[検査] タブが開き、データのプレビューが表示されます。

インジェスト プロセスを完了するには、[完了]を選択します。

[完了] を選択する前に取り込まれたデータのプレビューを示す [検査] タブのスクリーンショット。

手記

継続的インジェストとプレビュー データをトリガーするには、構成を完了した後に新しい BLOB をアップロードします。

必要 に応じて:

  • スキーマ定義ファイルのドロップダウンを使用して、スキーマが推論されるファイルを変更します。

  • [ファイルの種類] ドロップダウンを使用して、 データ型に基づいて詳細オプションを確認します

  • Table_mapping ドロップダウンを使用して、新しいマッピングを定義します。

  • </>を選択してコマンド ビューアーを開き、入力から生成された自動コマンドを表示およびコピーします。 KQL クエリセットでコマンドを開くこともできます。

  • 鉛筆アイコンを選択して 列を編集します

列の編集

手記

  • 表形式 (CSV、TSV、PSV) の場合、列を 2 回マップすることはできません。 既存の列にマップするには、最初に新しい列を削除します。
  • 既存の列の種類を変更することはできません。 別の形式の列にマップしようとすると、最終的に空の列になる可能性があります。

テーブルで行うことができる変更は、次のパラメーターによって異なります。

  • テーブル の種類 は新規または既存です。
  • マッピングの種類が新規かまたは既存か
テーブルの種類 マッピングの種類 使用可能な調整
新しいテーブル 新しいマッピング 列の名前変更、データ型の変更、データ ソースの変更、マッピング変換 、列の追加、列の削除
既存のテーブル 新しいマッピング 列の追加 (データ型の変更、名前の変更、更新が可能)
既存のテーブル 既存のマッピング 何一つ

名前、データ型、およびマッピングを編集するためにテーブル列が開かれている列エディターのスクリーンショット。

マッピング変換

一部のデータ形式マッピング (Parquet、JSON、Avro) では、単純な取り込み時間変換がサポートされています。 マッピング変換を適用するには、[列の編集] ウィンドウで列 作成または更新します。

マッピング変換は、データ型が int または long のソースを使用して、文字列型または datetime 型の列に対して実行できます。 詳細については、サポートされている マッピング変換 の完全な一覧を参照してください。

データ型に基づく詳細オプション

表形式データ (CSV、TSV、PSV):

  • 表形式を既存のテーブルに取り込もうとしている場合は、詳細、>テーブルスキーマを保持するを選択できます。 表形式データには、ソース データを既存の列にマップするために使用される列名が必ずしも含まれているわけではありません。 このオプションをオンにすると、マッピングは順番に行われ、テーブル スキーマは変わりません。 このオプションをオフにすると、データ構造に関係なく、受信データに対して新しい列が作成されます。

    詳細オプションのスクリーンショット。

  • 表形式データには、ソース データを既存の列にマップするために使用される列名が必ずしも含まれているわけではありません。 最初の行を列名として使用するには、[最初の行を列ヘッダーにする] を選択します。

    最初の行を列ヘッダーにするスイッチのスクリーンショット。

表形式データ (CSV、TSV、PSV):

  • 既存のテーブルに表形式を取り込む場合は、[Table_mapping>既存のスキーマを使用する] を選択します。 表形式データには、ソース データを既存の列にマップするために使用される列名が必ずしも含まれているわけではありません。 このオプションを選択すると、順序によってマッピングが行われ、テーブル スキーマは変わりません。 このオプションをオフにすると、データ構造に関係なく、受信データの新しい列が作成されます。

  • 最初の行を列名として使用するには、[ 先頭行ヘッダー] を選択します。

    1 行目のヘッダーと区切り記号の設定のコントロールを含む、高度な CSV オプションのスクリーンショット。

JSON:

  • JSON データの列分割を決定するには、 入れ子になったレベルを 1 から 100 まで選択します。

    JSON 列を分割するために使用する [入れ子レベル] 設定を含む、高度な JSON オプションのスクリーンショット。

インジェストの概要を確認する

[ 概要 ] ウィンドウでは、データ インジェストが正常に完了すると、すべての手順で緑色のチェック マークが表示されます。 カードを選択してデータを探索したり、取り込まれたデータを削除したり、主要なメトリックを含むダッシュボードを作成したりできます。

インジェストが正常に完了した継続的インジェストの概要ページのスクリーンショット。

ウィンドウを閉じると、[エクスプローラー] タブの [ データ ストリーム] に接続が表示されます。 ここから、データ ストリームをフィルター処理し、データ ストリームを削除できます。

データ ストリームが強調表示されている KQL データベース エクスプローラーのスクリーンショット。