Azure

Azure Cognitive Search でBlobに保存されているCSV内を検索する

はじめに

Blobストレージに保存されているファイル内を検索をAzure Cognitive Searchを利用して行ってみたいと思います。

検索するのはCSVで保存されているものです。

サンプルデータ

サンプルデータはジェネレータを利用して作成しています。

以下で作成しています。

個人情報テストデータジェネレーター
個人情報テストデータジェネレーター

アプリケーションのテストなどで利用できる、リアルな架空の個人情報データ(疑似データ)を生成するツールです。

testdata.userlocal.jp

ここで10000行のデータを作成しています。

また、Cognitive SearchではCSVのヘッダー部分が日本語では認識されません。特殊文字やスペースも利用できません。

利用したサンプルデータを置いておきます。中身はすべて架空のものです。

サンプルデータ

Cognitive Searchの作成と設定

作成

BlobからAzure Searchを開きます。検索サービスを新しく作成します。ここからではなく個別に探して作成しても同じです。

 

作成は名前を指定するだけです。価格レベルは仕様に合わせて変更してください。検証ではFreeでもよいかと思います。

スケールは最小の構成にしています。SLAを99.9にしたい場合は警告に従います、

ネットワークは変更しません。

設定

Cognitive Search(検索サービス)を開き、Blobのデータをインポートします。

データのインポートを選択します。

データソースはBlobを選択します。

データソース名を入力します。

解析モードを区切りテキストを選択します。

サンプルデータには最初の行にヘッダーが含まれているのでチェックを入れます。区切り文字はそのまま「,」です。

既存の接続を選択します。

保存したコンテナーを選択すると接続文字列は自動的に入力されます。

コンテナー名も自動で入力されます。

コグニティブスキル は利用しないので省略します。

データのインポートはデフォルトで名前が付きます。自分で分かりやすい名前を付けるのも良いです。

フィールドが自動的に検出されます。

それぞれ取得可能と検索可能にチェックを入れます。これは検索を行えるようにするためです。

名前は自動的に入ります。

インデクサーを作成します。

検索

検索エクスプローラーを利用して検索します。

クエリ文字列には何も入力しないで検索します。

すべてのデータがJSON出力されます。

例えばクエリ文字列に「"工藤"」と入力すると工藤にヒットしたところが表示されます。

まとめ

Blob内の検索も簡単に行うことができます。つまり、ログを保存しているコンテナーを対象に検索を行うことができます。Log Analyiticsで保存するより安いですからこれで済ますのもひとつです。

-Azure
-,