付録Aシリアライズと圧縮技術の詳細
クラウドを用いるデータエンジニアは一般に、オブジェクトストレージシステムの管理という複雑な作業からは解放されている。しかし、シリアライズフォーマットについてはやはり理解していなければならない。「6章 ストレージへの保存」で、ストレージの基本的な原材料について説明した際に触れたように、シリアライズと圧縮は密接に関連している。
A.1 シリアライズフォーマット
データエンジニアが使用できるシリアライズのアルゴリズムやフォーマットはたくさんある。選択肢がたくさんあることは、データエンジニアリングにおいては大きな悩みの種なのだが、同時に性能を大幅に向上させる機会でもある。CSVからParquetにシリアライズフォーマットを切り替えるだけ100倍以上の性能向上が得られたケースもある。CSVからParquetにシリアライズ方法を切り替えるだけ100倍以上の性能向上が得られたケースもある。パイプライン内でデータを移動する際には、再シリアライズを行わなければならない。つまりあるデータフォーマットから別のデータフォーマットに変換するのだ。古臭く面倒なフォーマットを使わざるを得ない場合もある。そのようなデータフォーマットをデシリアライズするプロセスを設計し、例外を処理してデータをきれいにして、下流での処理とデータ消費を整合した形で高速に行えるようにしなければならない。
A.1.1 行ベースのシリアライズ
名前からわかるように「行ベースのシリアライズ」では、データを行単位で管理する。CSVフォーマットは典型的な行ベースフォーマットだ。準構造化データ(ネストや複数のスキーマを許すようなデータオブジェクト)に対する行ベースのシリアライズでは、個々のオブジェクトを1つの単位として格納することになる。 ...
Get データエンジニアリングの基礎 ―データプロジェクトで失敗しないために now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.