AzureBlobGetを使用してMicrosoft Azure Storage のデータを取得する

AzureBlobGetコンポーネントを使用して、Azure Blob Storageのライブデータに接続し、リアルタイム分析や分散アクセスのためにBlobからデータを取得するフローを作成できます。

このガイドでは、AzureBlobGetコンポーネントの最も一般的な使用方法を紹介します。今回は例として、ウェビナー企画やリード文書を検索して取得します。AzureBlobGetコンポーネントのプロパティ設定方法とフローの結果を確認します。

AzureStorageコネクションの作成

フローデザイナーの左下にあるコネクションペインでAzureStorageコネクションを作成します。詳細な設定方法については、AzureStorageコネクションの作成を参照してください。

 

コンテナへの接続

AzureBlobGetコンポーネントをダブルクリックしてストレージブラウザを開き、「Container」を選択すると、AzureBlobGetコンポーネントの「コンテナ名」プロパティが自動的に設定されます。また、ストレージブラウザでは「Queue」とメッセージを表示および変更できます。このとき、Azure Storage Explorerに切り替える必要はありません。

以下の画像では、「Container」では「sample-webinars」が選択されています。

storage-browser.png

単一のバイナリファイルの取得

以下に示す「no-code-camp/interviews/rec1.mp4」というビデオファイルのような、単一のファイルのみを取得する必要がある場合、ストレージブラウザでファイル選択が可能です。

storage-browser-binary.png

「OK」をクリックすると、「Blob名」プロパティにストレージブラウザで選択した「no-code-camp/interviews/rec1.mp4」というパスが自動的に設定されます。

props-binary.png

次に、AzureBlobGetコンポーネントのBinary出力ストリームを他のコンポーネントに接続します。例えば以下に示すようにコンポーネントを接続すると、取得したバイナリデータを.mp4ファイルに保存できます。

バイナリストリームをファイルに保存する

AzureBlobGetコンポーネントの次にMapperコンポーネントを配置し、その次にFilePutコンポーネントを配置します。

Mapperコンポーネントの「入力をそのまま出力」プロパティを「はい」に設定します。Mapperコンポーネントでは、ストリームデータを変更せずに渡していることを示す赤い矢印のバッジが表示されます。

flow-binary-to-file.png

Mapperコンポーネントをダブルクリックしてマッピングウィンドウを開き、左側のAzureBlobGetコンポーネントの「Blob名」プロパティを右側のFilePutコンポーネントの「ファイルパス」プロパティにリンクします。

flow-binary-mapper.png

フローを実行すると、FilePutコンポーネントは、Flow Serviceユーザーのホームフォルダの下に「no-code-camp/interviews/rec1.mp4」というrec1.mp4ファイルを出力します。

以下の図では、ツリーペインで作成されたフォルダーと、ファイルペインで作成されたファイルを確認できます。

result-binary-to-file.png

注意

  • FilePutコンポーネントは、宛先フォルダーがまだ存在しない場合、新たなフォルダーを作成します。
  • デフォルトでは、FilePutコンポーネントは、宛先ファイルパスが既に存在する場合、それを上書きします。

メタデータの取得

AzureBlobGetコンポーネントを使用して、カスタムメタデータを取得できます。例えば、「カテゴリー」の「internal use」のようなメタデータを使用して、取得されるファイルをフィルタリングできます。

Azure Storage Explorerでファイルのカスタムメタデータを表示および編集できます。以下は、rec1.mp4ファイルのメタデータです。

metadata-explorer.png

「カテゴリー」のメタデータを取得するには、AzureBlobGetコンポーネントで、メタデータタブのプロパティ名「category」を定義します。Typeはデータ型を選択する項目です。ここでは「String」と設定します。

props-metadata.png

次に、マッピングウィンドウでコンポーネントプロパティのメタデータタブからcategoryをマッピングします。

 

メタデータの値を簡単に確認する方法

一時的にフローの内容を組み替えることで、メタデータの内容を簡単に確認することができます。

AzureBlobGetコンポーネントのリンクを解除し、新しいMapperコンポーネントを追加します。そして、メタデータタブのカテゴリーをテキスト出力ストリームにマッピングします。このマッピングは以下に示されています。

metadata-mapper.png

注意

テキストストリームは1つのフィールドしか持っていないため、テキスト出力ストリームにフィールドをマッピングするには、右側のテキスト出力ストリームのフィールドセクションの下にあるObjectフィールドにリンクします。

このテストフローの実行結果をフローデザイナーで表示できるようにするために、EndResponseコンポーネントを追加します。これにより、フローは以下のようになります。

metadata-flow.png

フローを実行すると、フローデザイナーの「フローの実行」ダイアログボックスに結果としてメタデータ「internal use」というテキストストリームが表示されます。

metadata-result.png

メタデータの内容を確認できたら、フローを元に戻しておきましょう。

CSVファイルの取得

CSVストリームを使用して、CSVファイルのフィールドや形式を処理します。「event-data」フォルダから「2022catalog.csv」というファイルを取得するには、下図のようにストレージブラウザでファイルを選択します。

storage-browser-single-object.png

OKをクリックすると、コンポーネントプロパティの「コンテナ名」と「Blob名」の両プロパティが自動的に設定されます。

props-binary.png

次のステップで処理する今回のファイルのデータは以下のとおりです。

Citizen Integrator Meeting, 20220815 No-Code Camp, 20221210 RPA Seminar,20220104

フローデザイナーのワークスペースで、AzureBlobGetコンポーネントの横にある「BIN」と書かれたラベルをクリックし、「CSV」のストリームタイプに変更します。

flow-azureblobget-csv-noloop.png

ストリームペインで、「EventName」と「EventDate」のフィールドを定義します。

stream-csv-fields.png

フローを実行すると、ストリームのコンテンツとCSVデータが表示されるのを確認できます。

result-loop-csv.png

フォルダ内のすべてのCSVファイルを取得

「event-data」フォルダー内のすべてのCSVファイルを取得するには、「Prefix」プロパティに「event-data/」というフォルダーパスを入力します。また、フォルダー内のすべてのCSVファイルにマッチさせるために、「Blob名」プロパティに正規表現パターンの「.*\.csv$」を入力します。

この正規表現パターンは、「.csvで終わるファイルに一致する、一つ以上の任意の文字が前にある」という意味です。

props-pattern.png

フローを実行すると、コンポーネントはマッチングするファイルを単一のストリームに結合し、下図のように表示されるのを確認できます。

result-folder.png

注意

ループの後に

ループは、ループを終了させるコンポーネント(この場合は、フローの終了コンポーネント)まで実行され、次の繰り返しのためにAzureBlobGetコンポーネントに戻ります。

ファイルをループ処理する

ほとんどの場合、すべてのファイルを1つのストリームにまとめるのではなく、一致するファイルを処理するためにループを使用します。各ファイルをループ処理するには、「ループを開始」プロパティを「はい」に設定します。各ループの反復は、一致するファイルが含まれるストリームを出力します。

コンポーネントのプロパティは、次のようになります。

props-loop.png

コンポーネントのストリームタイプのラベルは、「ループを開始」が「はい」に設定している場合、緑の枠が追加され、ループを使用していることが確認できます。

flow-loop.png

フローデザイナーでフローを実行するときには注意が必要です。フローデザイナーは出力ストリームを結合するため、コンポーネントがループを実行していても、前のフローと同じ結果が表示されます。

ループの結果をフローデザイナーで簡単に確認する方法として、EndResponseコンポーネントの「出力形態」プロパティを「最後のストリーム」に設定することで、AzureBlobGetの最後のストリームのみが出力されるようにできます。

その後、フローを実行すると、フローの出力は最後に一致したファイルである「2022catalog.csv」のデータのみ出力します。

result-loop-csv.png

取得するファイルの制限

「最大取得件数」プロパティを設定して、取得するファイルの数を指定できます。

「ループを開始」プロパティを「はい」に設定し、「最大取得件数」プロパティを「2」に設定してフローを実行すると、コンポーネントは「2019catalog.csv」と「2020catalog.csv」という2つのファイルをループ処理します。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する