未解決
1 Rookie
•
35 メッセージ
0
354
ECS解説 第17回 ECS メタデータサーチ トークン化機能
皆様、こんにちは。
6月に入って関東は、沖縄に続いて6月上旬に全国に先駆けての梅雨入り、続いて九州、中国、四国、近畿、東海と梅雨入りになり、日本列島も本格的な梅雨の季節になってきました。昨年まで関東は3年連続で平年よりも降水量が多かったそうです。今年こそ大きな水害がないことを祈るばかりですが、日ごろの準備を怠りなく梅雨を乗り切りましょう。(今週にはいって沖縄は梅雨明け宣言とのこと!)
さて、我々はこれまで、日々の記録を折々に(例えば季節ごと)読み出し、過去の記憶から未来の行動に生かしてきました。最近のAI/ML活用の一つとしてデータから新たな洞察を得るアプローチでは、より大規模なデータセットを取り扱えるようにしたい、その中から必要なデータセットを抽出したいという要望が高まっています。
メタデータ
IoTの活用から、大規模な範囲、あるいはより高密度な観測点から多種のセンサーからの多様なデータを得ることができるようになってきている昨今では、累積データを保管する場合、ファイルレベルのデータセットにどのようなデータが入っているのか、観測するポイントやタイミングなど多岐のパラメータの値がはっきりしないと、無駄にファイルにアクセスする必要が出てしまいます。従来であれば、ファイル名を使用してそのようなパラメータを記述しておくことで、データセットのアウトラインをわかるようにするアプローチがありました。人が介在する場合、このような手法がいまだ有効で、職場のルールの一つとして明確に決められている、運用されていることを見聞きされた方も多いのではないでしょうか。
より機械化・デジタル化を進め、より大規模なデータを新たに出現したAI/MLを活用するためにコンピュータリソースで処理を進めるためには、言語処理的なアプローチよりもDBのような検索機能を利用するほうが効率的です。データに関するテーマやトピック、作成時間、あるいはアクセス権や所有権に加え、コンテンツ等であれば関連する各種権利者やロケーション情報など多岐にわたる属性情報をファイルに付与したいということから、音声・映像などのファイルフォーマットの中には、付帯情報を納める領域があり、専用のマネジメントシステムはデータベースを使用してファイルと共に付帯情報の管理を行っています。このような付帯情報をメタデータ(メタ情報)と呼びます。
従来のファイルシステムが多岐にわたる付帯情報をファイルシステムに保存する仕組みがないこともあり、先に触れたようにコンテンツ管理のシステムではメタデータを管理する仕組みをファイルフォーマットとして設計していますが、ファイルフォーマットに対応したアプリケーションだけがメタデータを利用できる制限にもなります。一方、オブジェクトストレージでは、ストレージ自体にはファイルシステム形式を持たない一方で、オブジェクトファイルのデータ保管領域そのものと、保管領域へのアクセス管理やオブジェクトファイルデータをシステムが管理するためのメタデータ領域をデータベースとしてそれぞれ独立して管理しています。このメタデータ用のデータベースはユーザーも固有に利用することができるようになっており、ユーザーが入力した情報はユーザーメタデータと呼ばれます。またオブジェクトストレージシステム自身が利用するものをシステムメタデータと呼びます。メタデータについてはECS解説第4回でも触れておりますので、ご興味がありましたらご覧ください。
ECS解説第4回 s3curlによるECSの操作について(2/2)
メタデータ検索機能
オブジェクトストレージのメタデータを簡易なデータ管理に使用するケースがあります。オブジェクトファイル毎にHEADアクセスを使用することでメタデータを含むヘッダー情報のみを取得できます。つまりオブジェクトファイルそのものをダウンロードせずに、メタデータだけを取得することができます。さらにオブジェクトファイルごとにメタデータを都度参照せずに、バケット全体の検索を行いたいというお声を聴くことがございますが、Amazon S3ではバケット内のすべてのオブジェクトファイルのメタデータ検索を行うサービスを提供していません。下記のリンクで説明されているようにDynamoDBなどにメタデータの内容を記録したデータベースを作成し、検索する例が紹介されています。
(481) Building and Maintaining an Amazon S3 Metadata using DynamoDB - YouTube
弊社のECSに限らず市場に提供されているS3互換のオブジェクトストレージのいくつかは、外部データベースを作成する手間をユーザーがかけずにバケット全体を検索するための機能を実装するようになってきております。ECSの場合、ECS自身が管理するメタデータ管理用のKey Value Storeにユーザーがメタデータ検索をあるバケットに指定した場合、専用のテーブルを作成し、指定したメタデータの値で検索できるようになります。
ECSのメタデータ検索の概要は、すでにご案内しておりますECS解説第4回をご覧いただければと思います。
ECS解説第15回(ECS解説 第15回 ECS バージョン3.7のご紹介 - Dell Community)にECSのメタデータ検索機能の拡張(トークン化)について触れました。このブログの中で実際に動作も見ていただこうと思います。ECS解説第4回で使用しましたS3curlはできるだけ使用せずに、主にWindowsからECSを利用することができる無償ツールのGeoDriveで動作をご紹介し、新しい機能の特徴をお伝えしたいと思います。なお、GeoDriveはECS解説第5回(ECS解説第5回 GeoDrive2.0のご紹介とウィンドウズシステム-ECS間のデータアーカイブ操作例 -Windows OS用オブジェクトストレージゲートウェイ・アプリケーション- - Dell Community )で概要をご紹介しています。
GeoDriveによるメタデータの追加
GeoDrive for WindowsはWindows上のディレクトリとECS上の指定したバケットを、Windows上のGeoDriveが管理するフォルダー(GeoDriveフォルダー)と関連付けし、バケット内のオブジェクトファイルとフォルダー内のファイルを同期します。GeoDriveフォルダーの設定追加時あるいは設定変更時にWindowsからECSにアップロードする際にオブジェクトファイルへ付与するユーザーメタデータを指定することができます(GeoDriveフォルダーの設定変更時はメタデータの追加・削除・値の変更も可能です)。
下記のような設定画面からS3の標準的な形式である”x-amz-meta-xxxx”の形式でユーザーメタ―データ付与する「xxxx」の部分をTagとして指定し、Key Value形式でTagに入力される属性情報値をValueとして設定しておくと、設定したWindowsのディレクトリ(GeoDriveフォルダー)にファイルを書き込む際にWindowsからECSへオブジェクトファイルとしてアップロードし、同時に指定したメタデータをTagとValueのセットで付与してくれます。
上記の設定でECSのバケットにアップロードされたオブジェクトファイルのヘッダー情報を見てみましょう。S3Browserで下部のパンに表示されるタブウィンドウでHttp Headersを開くと、x-amz-meta-country, x-amz-meta-language, x-amz-meta-yearがHeader欄にあり、Valueにそれぞれ上記のGeoDriveの設定画面で設定したValueが付与されていることがわかると思います。例えば「x-amz-meta-country」には「Japan, German, France」が値として付与されています。
GeoDriveもメタデータ検索の機能をサポートしており、メタデータ検索を利用するためにはGeoDriveを設定する際に、新設のバケットの作成と合わせてそのバケットでメタデータ検索を有効にし、どのメタデータで検索するか指定し、事前にメタデータ検索を有効にしたバケットを指定する必要があります。
下記のウィンドウではGeoDriveを設定する際に新設のバケット作成させ、その時に検索対象のメタデータを指定するところを表示しています。
このように作成されたバケットに関連付けられたWindows上のGeoDriveのディレクトリでは右クリックメニューでGeoDrive用のメニューが選択でき、Metadata Search (メタデータ検索)の機能を選択することができるようになります。
このメニューを選択すると下記のように検索条件を指定できる画面がポップアップします。
「Insert Field」をクリックするとユーザーメタデータのうち検索キーに指定されたユーザーメタデータが表示されます。ここでは「x-amz-meta-country」を選択し、「Japan」を検索してみましょう。
実はこの状態だと検索結果に何も表示されません。
検索する値を「Japan, German, France」に変更してみます。
その実行結果(Searchをクリック)は以下のようになりました。
アップロードされたオブジェクトファイルで条件に該当するメタデータ値を持っているオブジェクトファイルがリストされ、GeoDriveフォルダーのWindows上のパスも表示されます。
ECS v3.7 新機能、メタデータ検索の「トークン化」
メタデータ検索の「トークン化」とは、検索対象のメタデータの値を与えられた値の全体で評価するのではなく、区分けされたワード単位で検索できるように値を評価することです。先ほどは、付与されたメタデータの値が「Japan, German, France」に対して、値全体でのみ合致するかどうかの評価がなされ、「Japan」のワードで検索しても合致するオブジェクトが見つかりませんでした。「トークン化」することで、「Japan」でも見つけられるようにしようということです。
「トークン化」によって検索条件を組み合わせれば、「Japan」かつ「France」がx-amz-meta-countryに含まれるオブジェクト、あるいは「France」または「German」を含むオブジェクトと検索の幅を広げることができるようになります。
この機能を有効にするためには、メタデータ検索対象のバケットを作成するときに、メタデータ検索を有効にすると同時に、「x-emc-metadata-search-tokens:true」をバケットのヘッダーに付与する必要があります。このメタデータはECS固有のため、Amazon S3の標準的なメタデータのみサポートするs3browserでは設定できません。実はGeoDriveによるバケットのメタデータ検索機能を有効にする機能もまだ、ECS v3.7の新機能「トークン化」に対応していないため、GeoDriveを用いてメタデータ検索機能が有効になったバケットでは、「x-emc-metadata-search-tokens:true」をバケットのヘッダーに付与できず、従来のメタデータ検索の入力されたValue全体で検索しないと条件に合致するメタデータを付与されているオブジェクトファイルが検索できないのです。
そこで、s3curlを使用して、「x-emc-metadata-search-tokens:true」をバケットのヘッダーに付与したバケットを作成してみました。作成コマンドとその結果は以下の図になります。
以下のようにコマンドを投入しました。
./s3curl.pl –id testdrive –createbucket – https://object.ecstestdrive.com/mdsearch3 -H ‘x-emc-metadata-search:x-amz-meta-country;string,x-amz-meta-language;string,x-amz-meta-year;integer’ -H x-emc-metadata-search-token:true -v -k | xmllint –format –recover – 2
簡単にコマンドの内容を説明いたします。
- ‘testdrive’としてアクセスキー、シークレットアクセスキーのセットを用いました。
- ‘createbucket’ はS3のバケット作成のオペランドになります。
- バケット作成時に-H にてメタデータをHeaderに付与します。
- ‘x-emc-metadata-seach’ のメタデータにパラメータとして以下の検索キーを付与します。
- x-amz-meta-country を データ属性 string で設定
- x-amz-meta-languageを データ属性 string で設定
- x-amz-meta-yearを データ属性 integer で設定
- x-emc-metadata-search-tokensの値をtrueにし、メタデータ検索のトークン化を有効にする
- ‘x-emc-metadata-seach’ のメタデータにパラメータとして以下の検索キーを付与します。
メタデータ検索キーに指定したメタデータの値のトークン化指定
検索キーに用いるメタデータの値をトークン化(ワードごとに区分け)するための値の入力方法は次のようになります。
トークン化対象の文字列の範囲指定としてスタート部に”[“を置きます。範囲指定の終了を示すために”]”を置きます。この範囲にカンマ”,”をデリミタとして使用します。
例:[ENG,JP,FR]
S3curlで作成したバケット、mdsearch3、にGeoDriveでWindowsのディレクトリを関連付け、アップロードするファイルにメタデータを付与するようにしました。
メタデータに付与した値がトークン化されるように、[xxx,yyy,zzz,…]、の書式にしてあります。
GeoDriveからECSにアップロードされたオブジェクトファイルに、期待通りメタデータが付与されたことをS3browserで確認できました。
現在のGeoDriveはECS v 3.7のメタデータ検索のトークン化機能に対応していないと説明しましたが、検索自体は検索キーに対して、検索する値を与えるだけですので、これまで通り動作するはずです。早速、GeoDriveのメタデータサーチの機能を使用して検索してみましょう。
GeoDriveの設定したWindows上のディレクトリ上で右クリックから「GeoDrive」のメニューを選択し、さらに「Metadata Search」を選択します。
ポップアップしたメタデータ検索(Metadata Search)のExpressionウィンドウに以下の検索条件を入力しました。
x-amz-meta-language == “JP”
結果は次のようになりました。
いくつか検索キーのメタデータに異なる値を付与するようGeoDriveのメタデータの設定を変えながらオブジェクトファイルをアップロードして、複数条件を設定してみました。
結果は期待通りトークン化された値の複数条件に合致するオブジェクトファイルのリストが出力されました。
検索条件にあったのかわかりにくいので上記のウィンドウのスライドバーを右にずらして検索キーを見てみました。x-amz-meta-languageの値にGERまたはJPのワードが与えらているオブジェクトファイルがリストされていることがわかりました。
メタデータの検索キーにIntegerを与えていたx-amz-meta-yearには、[2020,2022]か[2022,2022]を付与していました。そこで以下の検索をしてみました。
x-amz-meta-year > 2021
結果は以下のように条件に合致したオブジェクトファイルを検索しました。
まとめ
ECS v3.7で新たに実装されたメタデータ検索のトークン化についてご紹介しました。検索キーに与えられた値の属性に合わせたトークン化もでき、簡易的な検索ながら、メタデータ検索機能がより便利に拡張されたことがおわかりいただけたのではないでしょうか。今回はGeoDriveを用いることで、拡張された機能がトークン化の設定だけということを確認することもできました。Amazon S3またはS3互換のオブジェクトストレージを使い慣れている方にとってはGeoDriveを使わずとも、手慣れたスクリプトでメタデータの操作をされておられると思います。場合によってはキーバリューストアや簡易なデータベースでメタデータの管理をされているケースもあると思います。
不定型の文章テキストのコンテンツや会話音声データからテキストデータから、コンピュータによるテキスト分析を行い、頻出のキーワード、関連キーワードを抽出する技術を利用した表現を目にすることが増えております。このような技術を使うことで、オブジェクトファイルとしてアップロードする際に、コンテンツから抽出したキーワードを検索キーのメタデータの一つとして付与することもできるのではないでしょうか。
ECS v3.7のメタデータ検索のトークン化機能を使用することで、外部の検索用データベースを不要にすることができ、バケット内のオブジェクトファイルを分類するうえでカテゴリごとに複数の値を組み合わせるケースでも柔軟な利用ができそうです。
だいぶ長く説明をしてしまいました。ここまでお付き合いいただきありがとうございます。もしこういった使い方ができないかといったご質問や試してみたいというご要望がございましたら、遠慮なく私どもまでお申し付けください。
今後も新しい機能や新しい使い方をご紹介してきたいと思います。次回以降もぜひともお付き合いください。今回の記事が皆様の日々のお仕事やお知りになりたいことの何かにお役に立ちましたら何よりです。
杉本 直之
デルEMC
UDS事業本部SE部
過去のブログ一覧
ECS解説 第16回 ObjectScale V1.0のご紹介
ECS解説第14回 ECSの改ざん防止(WORM)機能のまとめ
ECS解説第13回 新機能 S3 Object Lock のサポートについて(後編)
ECS解説第12回 新機能 S3 Object Lock のサポートについて(前編)
ECS解説第11回 Community Edition 最新版(v3.6.2.0)リリースのご案内
ECS解説第10回 ECS3.5の新しい機能(2) - オブジェクトタギング(Object Tagging)
ECS解説第9回 ECS3.5 Community Edition VM版
ECS解説第7回 s3curlにおけるECS3.5.0.2以降での操作方法の違いについて
ECS解説第6回 新しいオブジェクトストレージアプライアンス、オールフラッシュ版ECS EXF900追加のご紹介
ECS解説第5回 GeoDrive2.0のご紹介とウィンドウズシステム-ECS間のデータアーカイブ操作例 -Windows OS用オブジェクトストレージゲートウェイ・アプリケーション-
ECS解説第4回 s3curlによるECSの操作について(2/2)
ECS解説第3回 s3curlによるECSの操作について(1/2)
ECS解説第2回 ECS (Elastic Cloud Storage) TEST DRIVEのご紹介
ECS解説第1回 Elastic Cloud Storage (ECS) Community Edition (VM版) 最新版ご紹介