ElasticsearchからデータをぶっこぬいてBigQueryに格納する機能のメソッド名を何にしようか悩んでいたところ
「ETL」というワードを教えてもらったので、ETLについて調べた
ETLとはExtract(抽出)、Transform(加工)、Load(格納)の略で、データを抽出し、抽出したデータを変換/加工した上でデータウェアハウス等へ渡す処理、およびそれを支援するソフトウェアのことらしい
その歴史は古く、1990年台後半頃から世に出回り始め、GUIを備えたツールもあるみたい
確かに今回作ろうとしている機能はElasticsearchから抽出して、加工はないが、BigQueryに格納するものなので相応しそう
というわけで、メソッド名にextract
やload
を使おうと思ったが、もう少し具体的にloadTo...
のようにしたい
このとき、...
にBigQuery
と具体的な名前をつけるのを避けたいので何がよいか調べたところ
Data Warehouse
とData lake
という二つの表現を目にした
この2つの違いはなんなのか追加で調べてみる
Data WarehouseとData Lakeの違い
GCPのドキュメントによると
データ ウェアハウスとは、POS トランザクション、マーケティング オートメーション、顧客管理などの複数のソースからの構造化データおよび半構造化データの分析とレポート作成に使用される企業システムです。アドホック分析やカスタム レポート作成に適しています。データ ウェアハウスは現在と過去のデータの両方を 1 か所に保存でき、長期間のデータを表示できるよう設計されていることから、ビジネス インテリジェンスにおける主要なコンポーネントとなっています。
データレイクは、大量の構造化データ、半構造化データ、非構造化データを保存、処理、保護するための、一元化されたリポジトリです。サイズ上限を問わず、ネイティブ形式でデータを保存し、どのようなデータでも処理できます。
つまり、システムで使いやすく構造化して格納されているのがData Warehouse
で、規則性をもたない非構造化の生データとかが格納されているのがData Lake
と考えて良さそう
そして、GCPのドキュメントによるとCloudStorageがData Lake
で、BigQueryはData Warehouse
らしいので、目的のメソッド名はloadToDataWarehouse
にするのがよさそう