この記事について
- この記事はdatatech-jp Advent Calendar 2024の12月5日分として記載しています
はじめに
- データ管理やデータ整備、データ分析等の文脈でメタデータという言葉をよく聞くと思います
- その意味としては「データについてのデータ」、RDBで言えばデータのスキーマ名、列名、データ型、などなどの属性情報を指すわけです
- しかしこのメタデータ、色々な分野で見るよな、と考えた個人的な意見などを以下に記載します
定義について
- 色々なサイトでメタデータについて定義づけられていたので、いくつか挙げてみます
Wikipedia 「メタデータ」 より以下抜粋
- メタデータ(英語:metadata)、メタ情報とは、メタなデータ、すなわちデータについてのデータという意味で、あるデータが付随して持つそのデータ自身についての付加的なデータを指す
- 情報検索システムの検索の対象となるデータを要約したデータのことをメタデータと呼んでいる
- 図書館情報学の分野では書誌情報と呼ぶこともある
- 例えば文書であれば著者名や表題、発表年月日等のほか、関連キーワードなどを含めるのが一般的である。また、デジタルカメラを用いて写真を撮影し、JPEGファイルとして保存した場合、Exifにそったメタデータが自動的に作成されるのが一般的である
総務省のファイルより抜粋
- メタデータとは、コンテンツ自身のことを説明するためのデータのこと
- 本について言えば本の「タイトル」「著者」「出版社」「発行日」「値段」など
- 検索用のキーワードをメタデータとしてあらかじめ付与しておくことで、対象となる情報資源を効率的に検索したり、あるいはコンテンツがデジタルデータの場合は、どのようなフォーマットで保存されているのかをメタデータとして記録しておくことで、再生するための方法を識別したりすることができます
- 例えば「地名で検索する」「地図で検索する」などの検索機能は、撮影場所(位置情報)をメタデータとして登録しておくことによって実現される機能です
- 地図アプリは位置情報を緯度経度で表すため、地図で検索させたい場合には、撮影場所のメタデータは地名ではなく緯度経度を使います。また、地区の名称で検索させたい場合は、地区名を使います
imagazine 「非構造化データの分析に不可欠なメタデータ管理」 より以下抜粋
- データの付随情報である「メタデータ」
- たとえば、Aさん宛てにリンゴを送るとしよう
- リンゴはダンボール箱に入れてあり、配送先(Aさん)の住所・宛名、配送元の住所・送り主名を記したラベルがダンボール箱に貼ってある
- リンゴの産地・品種・糖度・生産者・お奨めの調理法などを明記した紙がダンボール箱に同梱されている
- 「データ」はリンゴそのもの
- リンゴ(=データ)に関する付随情報として添えられている配送先・配送元の住所・名前が「システム・メタデータ」
- リンゴごとに販売者が追記した詳細情報が「カスタム・メタデータ」
メタデータ実例
- 上記の定義を踏まえて、改めて身の回りで目についたメタデータ(またはそれっぽいもの)を以下に記載してみます
IMDbで見られる映画情報
-
映画の中身がデータだとしたら、監督や主演、上映年、分野に関するタグ、配信しているサイト、レーティング、というのもメタデータかと思われます
-
以下画面はStar Warsについてのメタデータです
映画.comで見られる映画情報
-
以下画面は、私が小学生の頃に出演した、伊丹市制施行50周年記念映画「ひとけたの夏」のメタデータです
-
1992年制作、と書いてありますが、撮影して公開されたのは1990年だったはずなんだけどなあ。。。
-
データ(映像)自体はこちらで見られます
食品のパッケージに記載されたメタデータ
- 食品パッケージにメタデータ?と思われるかもしれませんが、こういうものこそメタデータと思います
- 名称、原材料、内容量、メーカー、栄養分、アレルギー情報、賞味期限、問い合わせ先など、消費者が購入に際して必要な情報が記載されています
- 以下写真は、この記事を記載していた時に食べていたラムネのパッケージです
- ブドウ糖を脳に補給しようとしていたんです
Unix/Linux のlsコマンドの結果
- UnixやLinuxを使う場合、打たない日は無いコマンドとしてls(List Segments)がありますが、このコマンドは該当するファイルのメタデータを表示してくれると言って良いと思います
- 以下では、デモ用のデータが入ったcsvファイルについてls -ltra コマンドを打った結果が出ています
- ファイルのパーミッション、ハードリンク数、所有者、グループ、ファイルサイズ、作成/更新日付、ファイル名、という並びでメタデータがリスト化されます
shumpei.kubo@shumpeinombp metadatadir % ls -ltra
total 8024
-rw-r--r--@ 1 shumpei.kubo staff 57018 5 2 2023 titanic.csv
-rw-r--r--@ 1 shumpei.kubo staff 2522280 4 2 2024 output_SPSS.csv
-rw-r--r--@ 1 shumpei.kubo staff 1526191 8 30 09:27 airline-data.csv
drwx------@ 1073 shumpei.kubo staff 34336 12 3 13:40 ..
drwxr-xr-x 5 shumpei.kubo staff 160 12 3 13:41 .
csvファイルのヘッダ(テーブルでいうところの列名)
- csvファイルのヘッダはデータそのものではなく、メタデータになりますし、これはRDBではそのまま列名になります
- 以下は、各csvファイルの上から3行を出力させたもので、最初の1行がヘッダー、あとの2行がデータの最初の2行、という事になります
shumpei.kubo@shumpeinombp metadatadir % head -3 ./*
==> ./airline-data.csv <==
Year,Month,DayofMonth,DayOfWeek,DepTime,CRSDepTime,ArrTime,CRSArrTime,UniqueCarrier,FlightNum,TailNum,ActualElapsedTime,CRSElapsedTime,AirTime,ArrDelay,DepDelay,Origin,Dest,Distance,TaxiIn,TaxiOut,Cancelled,CancellationCode,Diverted,CarrierDelay,WeatherDelay,NASDelay,SecurityDelay,LateAircraftDelay
2006,10,9,1,648,655,745,750,"WN",2506,"N513",57,55,43,-5,-7,"TUL","DAL",237,3,11,0,,0,0,0,0,0,0
2006,10,10,2,2051,2030,2159,2150,"WN",1422,"N786",128,140,117,9,21,"TPA","HOU",781,4,7,0,,0,0,0,0,0,0
==> ./output_SPSS.csv <==
"CUSTOMER_ID","LOYALTY_NBR","FIRST_NAME","LAST_NAME","CUSTOMER_NAME","COUNTRY","STATE_NAME","STATE_CODE","CITY","LATITUDE","LONGITUDE","POSTAL_CODE","GENDER","EDUCATION","LOCATION_CODE","INCOME","MARITAL_STATUS"
"1017794","352909","Jerilyn","Hohm","Jerilyn Hohm","Germany","Niedersachsen","NI","Hannover","52.375892","9.73201","30627","female","Bachelor","Rural","83497","Married"
"1017862","353797","Harriette","Ruberti","Harriette Ruberti","Germany","Baden-Wurttemberg","BW","Leonberg","48.796045","9.009571","71299","female","Doctor","Rural","12688","Married"
==> ./titanic.csv <==
survived,pclass,sex,age,sibsp,parch,fare,embarked,class,who,adult_male,deck,embark_town,alive,alone
0,3,male,22.0,1,0,7.25,S,Third,man,True,,Southampton,no,False
1,1,female,38.0,1,0,71.2833,C,First,woman,False,C,Cherbourg,yes,False
shumpei.kubo@shumpeinombp metadatadir %
データカタログで収集したRDBMSのメタデータ
- データカタログを使用して、RDBMSのテーブルのメタデータを表示すると以下のような感じになります
- IBM Knowledge Catalog というデータカタログ製品を使用した場合です
- 対象は、Db2 Warehouse に格納されているデモ用のテーブルから取得したメタデータです
- テクニカルメタデータやビジネスメタデータ、統計情報、品質情報等が確認できます
データカタログでのメタデータの一覧
- カタログ画面内で、格納されているメタデータの一覧を眺めてみます
- 注文関連のテーブルを検索してみた結果です
- テーブル名、所有者、表示名、タグ、用語、分類などのメタデータが一覧できています
テーブル全体のテクニカルメタデータ
データ列についてのテクニカルメタデータ
- 以下、青枠で囲んだ中央上寄りの箇所は、データの列についてのメタデータ(テクニカルメタデータ)です
- 「概要」タブをクリックすると確認できます
- 列名、品質スコア、データ型、該当する用語、などが確認できます
ビジネスメタデータ
サンプルデータ
統計情報
ヒストグラム
箱ひげ図
Q-Q プロット
分布
品質情報
さいごに
- 我々がスーパーやコンビニでそのパッケージに記載された内容(メタデータ)を見て食品を購入するように、データ管理、整備、分析の文脈でメタデータを整備することで、より分析者がデータ分析や活用をしやすい状況をつくれるようになります
- そんなときにデータカタログを使うと様々なメタデータを横断的に閲覧してほしいデータを手に入れやすくなります
参考情報
- 過去にメタデータに関連する情報を記載した各種ブログなどを以下に記載します
-
正しい言葉のモノサシ、使っていますか?
- 言葉の定義・意味をメンバー間で統一しておかないと意思疎通に齟齬が出る、という事について書いたブログです
- どちらかというとビジネスメタデータについてのお話ですね
-
正しい言葉のモノサシ、使っていますか?