4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Blob Storageにファイルがアップロードされたら即座に表にロードするライブ表フィードを設定してみた

Posted at

はじめに

特定のAzure Blob Storageコンテナーにファイルがアップロードされたら、自動的にAutonomous Database内の表にデータをロードする方法がマニュアルに記載されたので、検証してみました。

仕組みとしては、Azure Blob Storageコンテナーのファイル作成時のイベント通知をAutonomos Databaseが受信し、対象ファイルのデータ・ロード(ライブ表フィード)を行うというものです。

1. Azure Blob Storageコンテナーの作成とファイルのアップロード

AzureポータルからAzure Blob Storageコンテナーを作成します。
今回は、「live-table-feed」という名前のコンテナーを作成しました。
スクリーンショット 2024-10-08 14.48.30.png

作成したコンテナーに以下のファイルをアップロードします。

empdata1.csv
1,SMITH
2,ALLEN
3,WARD

スクリーンショット 2024-10-08 15.08.35.png

2. Azure Blob Storageコンテナーに対するクラウド・ストレージ・リンク(クラウドストアの場所)の作成

Autonomous Databaseの付属ツール「Database Actions」で、Azure Blob Storageコンテナー「live-table-feed」に対するクラウド・ストレージ・リンクを作成します。

Autonomous Databaseの詳細画面で「データベース・アクション」→「データ・ロード」とクリックします。

スクリーンショット 2024-10-08 14.55.15.png

Database Actionsのデータ・ロードのページが表示されます。

スクリーンショット 2024-10-08 14.58.54.png

「接続」をクリックします。
スクリーンショット 2024-10-08 14.58.54のコピー.png

「作成」をクリックし、「新規クラウド・ストアの場所」を選択します。
スクリーンショット 2024-10-08 14.59.28.png

「クラウド・ストアの場所の追加」のウィザードが表示されますので、「資格証明の作成」をクリックします。
スクリーンショット 2024-10-09 11.23.05.png

「資格証明の作成」ウィザードが表示されます。
「資格証明名」には作成する資格証明(クレデンシャル)の名前を入力します。今回は「AZURE_CRED」という名前にしました。
「クラウド・サービス」は「Microsoft Azure」を選択します。
「Azureストレージ・アカウント名」にはコンテナーを作成したストレージ・アカウント名を入力します。
「Azure ストレージ・アカウント・アクセス・キー」には、Azure ストレージ・アカウントのアクセスキーを入力します。
全ての項目の入力が完了したら、「資格証明の作成」をクリックします。
スクリーンショット 2024-10-08 15.02.29.png

「名前」に作成するクラウド・ストアの場所の名前を入力します。今回は「AzureBlobStorage」としました。
「資格証明の選択」を選択し、先ほど作成した資格証明「AZURE_CRED」を選択します。
バケットURIにはAzure Blob StorageのコンテナーのURIを入力します。
全ての入力が完了したら、「作成」をクリックします。
スクリーンショット 2024-10-08 15.05.49.png

クラウド・ストレージ・リンク「AzureBlobStorage」が作成できました。
スクリーンショット 2024-10-08 15.06.15.png

3. ライブ表フィードの作成

「データ・ロード」をクリックして、データ・ロードのページに移動します。
スクリーンショット 2024-10-08 15.06.15のコピー.png

「データのフィード」をクリックします。
スクリーンショット 2024-10-09 11.47.20.png

「ライブ表フィードの作成」をクリックします。
スクリーンショット 2024-10-08 15.06.52.png

「クラウド・ストアの場所」として先ほど作成した「AZUREBLOBSTORAGE」を選択します。
入力したら、「次」をクリックします。
スクリーンショット 2024-10-08 15.09.32.png

ターゲット表名を入力します。今回はempとしました。
また、今回ロードするCSVファイルにはヘッダー行がありませんので、「列ヘッダー行」のチェックをオフにしました。
スクリーンショット 2024-10-09 11.55.04.png

マッピングのセクションでは、ターゲット列名とそのデータ型を設定し、「次」をクリックします。
スクリーンショット 2024-10-09 11.55.43.png

プレビューが表示されるので、内容を確認して「次」をクリックします。
スクリーンショット 2024-10-09 11.58.11.png

作成するライブ表フィードの名前を入力します。今回は「EMP_FEED」をしました。
また、「通知に対して有効」のチェックをオンにし、「スケジューリングに対して有効化」のチェックをオフにします。
入力が完了したら、「作成」をクリックします。
スクリーンショット 2024-10-09 11.59.49.png

「今すぐライブ表フィードを実行」と表示されますので、「はい」をクリックします。
スクリーンショット 2024-10-09 12.02.12.png

ライブ表フィード「EMP_FEED」が作成され、3行をロードしたことが表示されています。
スクリーンショット 2024-10-09 12.15.51.png

「EMP_FEED」の右上の3つ点の部分をクリックし、「通知URLを表示」をクリックします。
スクリーンショット 2024-10-09 12.16.26.png

EMP_FEEDの通知URLが表示されますので、URLをコピーしておきます。
スクリーンショット 2024-10-09 12.16.54.png

4. Azure Event Gridの有効化

Azure Event Gridが有効化されていない場合、有効化します。

Azureポータルでサブスクリプションに移動し、左側のメニューから「リソースプロバイダー」をクリックします。
スクリーンショット 2024-10-08 15.17.33.png

リソースプロバイダーのページが表示されます。
スクリーンショット 2024-10-08 15.17.49.png

フィルターに「Microsoft.EventGrid」と入力してMicrosoft.EventGridを検索します。
スクリーンショット 2024-10-08 15.18.10.png

Microsoft.EventGridのチェックをオンにし、3点リーダをクリックして、「登録」をクリックします。
スクリーンショット 2024-10-08 15.18.27.png
「状態」が「Registering」になります。
スクリーンショット 2024-10-08 15.19.04.png
しばらく待つと、「状態」が「Registerd」に変わります。
スクリーンショット 2024-10-08 15.20.29.png
以上で、Azure Event Gridが有効化できました。

5. イベント・サブスクリプションの作成

Azure Blob Storageのイベント・サブスクリプションを作成します。

Azureポータルでストレージアカウントに移動し、左側のメニューから「イベント」をクリックします。
スクリーンショット 2024-10-08 15.21.19.png

「+ イベントサブスクリプション」をクリックします。
スクリーンショット 2024-10-08 15.22.01.png

「名前」に作成するイベントサブスクリプションの名前を入力します。今回は「BlobCreated」としました。
「システムトピック名」に作成するシステムトピック名を入力します。今回は「BlobCreatedTopic」としました。
「イベントの種類のフィルター」は「Blob Created」を選択します。
「エンドポイントの種類」は「Web hook」を選択します。
全てを入力したら、「エンドポイントの構成」をクリックします。
スクリーンショット 2024-10-08 15.24.30.png

「サブスクライバーエンドポイント」に、先ほどコピーしておいたEMP_FEEDの通知URLを入力し、「選択の確認」をクリックします。
スクリーンショット 2024-10-08 15.25.05.png

入力内容を確認し、「作成」をクリックします。
スクリーンショット 2024-10-08 15.25.29.png

6. 通知が受信できるかの確認

ライブ表フィードが5.で作成したイベント・サブスクリプションからの通知を正しく受信できるかを確認します。

「EMP_FEED」の右上の3つ点の部分をクリックし、「確認URLを表示」をクリックします。
スクリーンショット 2024-10-09 12.34.41.png

確認URLが表示されるので、リンクをクリックします。
スクリーンショット 2024-10-09 12.35.10.png

ブラウザのウインドウが開き、通知が問題なく受信できると次のような内容が表示されます。
スクリーンショット 2024-10-09 12.35.24.png

通知が問題なく受信できることが確認できたら、「クラウド・ストア確認プロセスが完了している場合のみチェックします。」のチェックをオンにし、「OK」をクリックします。
スクリーンショット 2024-10-09 12.37.06.png

以上で、Azure Blob Storageのコンテナーにファイルが追加されたら、イベントを受信して自動的に表へのデータロードを行うライブ表フィードの設定が完了しました。
スクリーンショット 2024-10-09 12.37.24.png

7. 動作確認

Azure Blob Storageのコンテナーにファイルをアップロードして、動作を確認してみます。

Azureポータルでコンテナー「live-table-feed」の概要ページにアクセスし、「アップロード」をクリックします。
スクリーンショット 2024-10-09 12.40.57.png

以下のような内容のファイルempdata2.csvをアップロードします。

empdata2.csv
4,JACKSON
5,BROWN
6,TURNER

スクリーンショット 2024-10-09 12.41.18.png

ファイルempdata2.csvがアップロードされました。
スクリーンショット 2024-10-09 12.41.32.png

Database Actionsに戻り、「EMP_FEED」の右上の3つの点の部分をクリックし、「ライブ表フィードの実行の詳細」をクリックします。
スクリーンショット 2024-10-09 12.42.03.png

プレビューが表示され、empdata2.csvのファイルがロードされていることが確認できました。
スクリーンショット 2024-10-09 12.42.34.png

左側のメニューの「ログ」をクリックして、実行ログを確認します。
スクリーンショット 2024-10-09 12.43.13.png
empdata2.csvのアップロード日時が2024/10/9 12:41:20 JST(2024/10/9 3:41:20 UTC)ですので、その約9秒後に自動的に表にロードされていることがわかりました。

Database ActionsのSQLから表empの内容を確認してみます。
スクリーンショット 2024-10-09 12.44.24.png

EMP_FEEDのプレビューで表示された内容と同じデータが格納されていることが確認できました。

参考情報

Creating a Notification-Based Live Table Feed using Microsoft Azure

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?