March 2024
Beginner to intermediate
416 pages
6h 54m
Japanese
クラウドを用いるデータエンジニアは一般に、オブジェクトストレージシステムの管理という複雑な作業からは解放されている。しかし、シリアライズフォーマットについてはやはり理解していなければならない。「6章 ストレージへの保存」で、ストレージの基本的な原材料について説明した際に触れたように、シリアライズと圧縮は密接に関連している。
データエンジニアが使用できるシリアライズのアルゴリズムやフォーマットはたくさんある。選択肢がたくさんあることは、データエンジニアリングにおいては大きな悩みの種なのだが、同時に性能を大幅に向上させる機会でもある。CSVからParquetにシリアライズフォーマットを切り替えるだけ100倍以上の性能向上が得られたケースもある。CSVからParquetにシリアライズ方法を切り替えるだけ100倍以上の性能向上が得られたケースもある。パイプライン内でデータを移動する際には、再シリアライズを行わなければならない。つまりあるデータフォーマットから別のデータフォーマットに変換するのだ。古臭く面倒なフォーマットを使わざるを得ない場合もある。そのようなデータフォーマットをデシリアライズするプロセスを設計し、例外を処理してデータをきれいにして、下流での処理とデータ消費を整合した形で高速に行えるようにしなければならない。
名前からわかるように「行ベースのシリアライズ」では、データを行単位で管理する。CSVフォーマットは典型的な行ベースフォーマットだ。準構造化データ(ネストや複数のスキーマを許すようなデータオブジェクト)に対する行ベースのシリアライズでは、個々のオブジェクトを1つの単位として格納することになる。 ...