範囲: p450 - p455

これまで説明してきたデータライフサイクルはデータをデータソースから移動して、別の場所に保存するものだった。ここではデータを使いやすい形に変更することを論じる。クエリ、モデリング、データ変換を理解することで、生のデータを下流のユーザーが使いやすい形に変更するツールを手に入れることができる。扱うのは下の画像のTrransaformation(紫の箇所)。

Untitled

最初にクエリとそれを支える重要なパターンについて論じる。次にビジネスロジックをデータに落とし込むメジャーなモデリングパターン、またデータモデルのロジックやクエリの結果を下流のデータユーザーが使いやすい形にする変換(transformation)について紹介する。最後に誰と働くのか、またこの章に関連するundercurrrents(fig 8-1の下の部分)についても紹介する。

SQLやNoSQLデータベースの中でのデータのクエリ、変換、モデルについては様々な手法がある。この章ではOLAP(Online Analytical Processing)システムに対するクエリにフォーカスする。(通常のDWHやDataLakeに相当する。)またクエリ用の言語はたくさん存在するが、利便性や親しみやすさ(familiarityの訳が微妙)を考慮して、最も人気があって一般的なクエリ言語のSQLにフォーカスする。OLAPやSQLの概念は他のデータベースやクエリ言語に転用可能である。この章ではprimary keyやforeign keyの概念を知っていることを仮定している。この分野に詳しくないなら、参考となるような資料はたくさんあるので参照してほしい。

cf. AWS DynamoDB(NoSQLデータベース)

リレーショナル (SQL) または NoSQL? - Amazon DynamoDB

cf. pk, fk 基本情報とかで勉強するやつ

https://learn.microsoft.com/ja-jp/sql/relational-databases/tables/primary-and-foreign-key-constraints?view=sql-server-ver16

この章では簡便のためデータベースという言語をクエリエンジンと、クエリするためにストレージという意味で使う。これは例えばDWHであったりS3に保存されているデータをSparkでクエリするこという意味でデータベースという言葉を使う。データベースはボンネットの下で(ボンネットってどこの比喩?)データを整理するためのストレージエンジンを持っていることも仮定する。

この定義にもとづけば、ファイルベースのクエリ(csvファイルをnotebook上にロードする)もParquetのようなファイルフォーマットに関するクエリもデータベースになる。(csvファイルがparquetに代わっただけで同じことでは?)

また、ここではクエリやモデリングパターンやデータ変換はデータエンジニアによく使われる構造化データや半構造化データを対象とする。これらのpracticeは非構造化データの画像や動画、生の文章なんかに適用できる。(本当に適用可能?)

cf. 構造化データ

構造化データ: 表形式のデータ

半構造化データ: 構造化データに準じるデータ(jsonなど)

非構造化データ: それ以外

https://jp.drinet.co.jp/blog/datamanagement/semi-structured-data