🗂️

スキーマって何なの?

に公開

背景

AWSのRedshiftAthenaの違いを勉強していた時、

スキーマのありなしで処理速度や柔軟性が違う

と解説があったけど、そもそもスキーマってなんだってなった。


結論

スキーマとは構造を決めるルールとタイミング

そもそもAWS RedshiftとAthenaって?

RedshiftはDWHを構築・分析するためのサービス、Athenaはデータレイクを直接クエリして分析するためのサービス(中規模まで)

観点 Redshift Spectrum Athena
立ち位置 Redshift の拡張機能 独立したサーバーレス分析サービス
ターゲット DWH(加工済データ中心) データレイク(無加工データ中心)
必要なもの Redshift クラスター 何も必要ない
得意な処理 JOIN・集計・DWH的分析 ad-hoc 調査・ログ分析
使い方 RedshiftのSQLから外部テーブルを参照 Athenaに直接SQLを投げる

※表作成にはAIを使用しています。
※厳密には、Redshift Spectrum は Redshift の拡張機能であり、Redshift の内部テーブルとは保存方式やスキーマ適用タイミングが異なります。

構造的な違い

データレイク:生データの集まり。いろんなデータ形式で保存出来て柔軟性が高い。分析エンジンに依存しない
DWH:主に表形式。複雑な集計や結合操作などに向く。高速で分析できる。

スキーマってズバリ何なのか

スキーマはデータの構造を決めるタイミングあるいはルールの内容

  • schema-on-read
データ保存時には整形ルールを適用せず、データを使用するときに構造を決定する。

→柔軟性ある分析が可能、データレイクはこっち。

  • schema-on-write
データ保存時に構造を決定して、データを使用する。

→高速に処理できる、データウェアハウスはこっち。

例えるなら?

schema-on-read=とりあえず採用して、仕事の時に役割を決める会社
schema-on-write=部署が決まっていて、入社時に配属される会社

活用例など

データレイクでは生データを保存してあとから任意の項目、条件で使用する。
→保存するときに構造を指定しない。分析の時に使う項目、表現方法などを指定できる。
活用例:単発、調査などスポット的分析(ログ調査、インシデント調査、特定のキャンペーンの効果振り返りなどに優位)

DWHでは保存時に使う項目、表現方法などを定義して保存して使用する
活用例:売り上げ分析、行動追跡調査、BIダッシュボード作成など長期間のデータを扱う分析に優位

まとめ

スキーマは構造を決めるタイミングあるいはルールの内容

種類 特徴
schema-on-read 保存時のルールなし。多様なデータ形式を受け入れ可能。柔軟性・弾力性・リアルタイム性で優位。長期間の分析や処理能力は劣る
schema-on-write 保存時のルールあり。表形式データが受け入れ可能。継続的な調査・分析や高速な分析処理で優位。保存時に指定した形式のデータしか取り扱えない。

参照リンク
https://aws.amazon.com/jp/compare/the-difference-between-a-data-warehouse-data-lake-and-data-mart/

https://www.nttdata.com/jp/ja/trends/data-insight/2023/0620/

https://www.talend.com/jp/resources/data-lake-vs-data-warehouse/

Discussion