はじめに
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で保存するより安いですからこれで済ますのもひとつです。