メタデータについて考える

# この記事について
- この記事は[datatech-jp Advent Calendar 2024](https://qiita.com/advent-calendar/2024/datatech-jp)の12月5日分として記載しています

# はじめに

- データ管理やデータ整備、データ分析等の文脈でメタデータという言葉をよく聞くと思います
- その意味としては「データについてのデータ」、RDBで言えばデータのスキーマ名、列名、データ型、などなどの属性情報を指すわけです
- しかしこのメタデータ、色々な分野で見るよな、と考えた個人的な意見などを以下に記載します


# 定義について

- 色々なサイトでメタデータについて定義づけられていたので、いくつか挙げてみます

## Wikipedia [「メタデータ」](https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF) より以下抜粋

- メタデータ（英語：metadata）、メタ情報とは、メタなデータ、すなわちデータについてのデータという意味で、あるデータが付随して持つそのデータ自身についての付加的なデータを指す 
- 情報検索システムの検索の対象となるデータを要約したデータのことをメタデータと呼んでいる
- 図書館情報学の分野では書誌情報と呼ぶこともある
    - 例えば文書であれば著者名や表題、発表年月日等のほか、関連キーワードなどを含めるのが一般的である。また、デジタルカメラを用いて写真を撮影し、JPEGファイルとして保存した場合、Exifにそったメタデータが自動的に作成されるのが一般的である

## [総務省のファイル](https://www.soumu.go.jp/main_content/000225131.pdf)より抜粋
- メタデータとは、コンテンツ自身のことを説明するためのデータのこと
- 本について言えば本の「タイトル」「著者」「出版社」「発行日」「値段」など
- 検索用のキーワードをメタデータとしてあらかじめ付与しておくことで、対象となる情報資源を効率的に検索したり、あるいはコンテンツがデジタルデータの場合は、どのようなフォーマットで保存されているのかをメタデータとして記録しておくことで、再生するための方法を識別したりすることができます
- 例えば「地名で検索する」「地図で検索する」などの検索機能は、撮影場所（位置情報）をメタデータとして登録しておくことによって実現される機能です
- 地図アプリは位置情報を緯度経度で表すため、地図で検索させたい場合には、撮影場所のメタデータは地名ではなく緯度経度を使います。また、地区の名称で検索させたい場合は、地区名を使います

## imagazine [「非構造化データの分析に不可欠なメタデータ管理」](https://www.imagazine.co.jp/%E9%9D%9E%E6%A7%8B%E9%80%A0%E5%8C%96%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%88%86%E6%9E%90%E3%81%AB%E4%B8%8D%E5%8F%AF%E6%AC%A0%E3%81%AA%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E7%AE%A1%E7%90%86/) より以下抜粋

- データの付随情報である「メタデータ」
- たとえば、Aさん宛てにリンゴを送るとしよう
    - リンゴはダンボール箱に入れてあり、配送先（Aさん）の住所・宛名、配送元の住所・送り主名を記したラベルがダンボール箱に貼ってある
    - リンゴの産地・品種・糖度・生産者・お奨めの調理法などを明記した紙がダンボール箱に同梱されている
        - 「データ」はリンゴそのもの
        - リンゴ（＝データ）に関する付随情報として添えられている配送先・配送元の住所・名前が「システム・メタデータ」
        - リンゴごとに販売者が追記した詳細情報が「カスタム・メタデータ」

# メタデータ実例

- 上記の定義を踏まえて、改めて身の回りで目についたメタデータ（またはそれっぽいもの）を以下に記載してみます


## [IMDb](https://www.imdb.com/?ref_=nv_home)で見られる映画情報
- 映画の中身がデータだとしたら、監督や主演、上映年、分野に関するタグ、配信しているサイト、レーティング、というのもメタデータかと思われます

- 以下画面は[Star Warsについてのメタデータ](https://www.imdb.com/title/tt0076759/?ref_=nv_sr_srsg_0_tt_8_nm_0_in_0_q_starwars)です
![スクリーンショット 2024-12-03 14.19.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/7dc0ebdd-243a-e2ba-b7e7-b3ec2ac40fc3.png)


## [映画.com](https://eiga.com/)で見られる映画情報

- 以下画面は、私が小学生の頃に出演した、伊丹市制施行50周年記念映画[「ひとけたの夏」のメタデータ](https://eiga.com/movie/74037/)です
- ![スクリーンショット 2024-12-03 16.54.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/57518caf-6b96-e1b3-b7ae-5047bb83262a.png)
![スクリーンショット 2024-12-03 16.55.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/6201b727-d6de-250f-ae68-65c146e4771a.png)

- 1992年制作、と書いてありますが、撮影して公開されたのは1990年だったはずなんだけどなあ。。。

- データ（映像）自体は[こちら](https://www.youtube.com/watch?v=jV2IS-0ybfs&list=PLVHKq7Z0AaEyeFkXO0XyVQ9HnepcVF37L)で見られます


## 食品のパッケージに記載されたメタデータ
- 食品パッケージにメタデータ？と思われるかもしれませんが、こういうものこそメタデータと思います
- 名称、原材料、内容量、メーカー、栄養分、アレルギー情報、賞味期限、問い合わせ先など、消費者が購入に際して必要な情報が記載されています
- 以下写真は、この記事を記載していた時に食べていたラムネのパッケージです
- ブドウ糖を脳に補給しようとしていたんです
![90FCA922-793D-4403-9076-E96B030A1DD5_4_5005_c.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/682938cd-d835-7548-5f46-863b9a8d8b88.jpeg)



## 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 に格納されているデモ用のテーブルから取得したメタデータです
- テクニカルメタデータやビジネスメタデータ、統計情報、品質情報等が確認できます

---
### データカタログでのメタデータの一覧
- カタログ画面内で、格納されているメタデータの一覧を眺めてみます
- 注文関連のテーブルを検索してみた結果です
- テーブル名、所有者、表示名、タグ、用語、分類などのメタデータが一覧できています

![スクリーンショット 2024-12-03 18.27.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/93588484-b68d-e9d9-39cd-22397b3ae57e.png)


---
### テーブル全体のテクニカルメタデータ
- 以下、青枠で囲んだ右側の箇所は、テーブル全体についてのメタデータ（テクニカルメタデータ）です
- 表示名や説明、所有者や品質などが確認できます
![スクリーンショット 2024-12-03 15.55.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/de0707b2-7f76-89b8-e13a-debb4ed8cf96.png)

---
### データ列についてのテクニカルメタデータ
- 以下、青枠で囲んだ中央上寄りの箇所は、データの列についてのメタデータ（テクニカルメタデータ）です
- 「概要」タブをクリックすると確認できます
- 列名、品質スコア、データ型、該当する用語、などが確認できます
![スクリーンショット 2024-12-03 15.58.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/63eceb8e-26a5-87fe-8ac1-87199e45b7db.png)

---
### ビジネスメタデータ
- 以下、青枠で囲んだ中央下寄りの箇所は、ビジネスメタデータです
- 当該テーブルに関連する用語や分類が割り当てられていることがわかります
![スクリーンショット 2024-12-03 16.09.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/e049a2da-7d53-35a1-66ad-04581368c2ee.png)

---
### サンプルデータ
- 以下、青枠で囲んだ箇所は、サンプルデータです
- 「資産」タブをクリックすると確認できます
![スクリーンショット 2024-12-03 16.26.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/3d1a79a4-3d6c-d697-b238-53560b0affb4.png)

---
### 統計情報
- 以下、青枠で囲んだ箇所は、データの統計情報です
- 「プロファイル」タブをクリックすると確認できます
![スクリーンショット 2024-12-03 16.29.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/b933330b-8a61-28cb-2d13-771fb6771007.png)

- 列名をクリックすると、当該列の統計情報を、以下複数の形式で確認できます
![スクリーンショット 2024-12-03 16.33.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/a51de436-1068-0c8b-c44f-4e243316e30d.png)

#### ヒストグラム
![スクリーンショット 2024-12-03 16.34.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/53b3b764-feb8-91fa-9bad-8e06f7a342d0.png)

#### 箱ひげ図
![スクリーンショット 2024-12-03 16.35.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/55aebfd6-e139-b0b1-bec6-be9ad6efe7c5.png)

#### Q-Q プロット
![スクリーンショット 2024-12-03 16.35.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/ee072fa1-e1bd-21cc-7055-b123cbebaa2f.png)

#### 分布
![スクリーンショット 2024-12-03 16.36.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/fb78e728-528f-401b-0bfc-22a5069b602b.png)

### 品質情報 
- 以下は、データの品質情報です
- 「データ品質」タブをクリックすると確認できます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/f02046f5-9ecd-c9b5-a28d-b2c9bfa8ebcd.png)

![スクリーンショット 2024-12-03 16.41.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/54b020ec-398c-0f34-38fb-2e9d630c8284.png)

# さいごに

- 我々がスーパーやコンビニでそのパッケージに記載された内容（メタデータ）を見て食品を購入するように、データ管理、整備、分析の文脈でメタデータを整備することで、より分析者がデータ分析や活用をしやすい状況をつくれるようになります
- そんなときにデータカタログを使うと様々なメタデータを横断的に閲覧してほしいデータを手に入れやすくなります

# 参考情報

- 過去にメタデータに関連する情報を記載した各種ブログなどを以下に記載します
    - [正しい言葉のモノサシ、使っていますか？](https://www.ibm.com/blogs/solutions/jp-ja/terminology_definition/)
        - 言葉の定義・意味をメンバー間で統一しておかないと意思疎通に齟齬が出る、という事について書いたブログです
        - どちらかというとビジネスメタデータについてのお話ですね