【Medium】2022 : Modern Data Stack
がく@ちゅらデータエンジニア です。
※2022年9月よりちゅらデータ株式会社にJoinしました
データエンジニアリングな話題などをMediumで毎朝、サジェストされるんですが、これちゃんと読んでいかんとなーということで、読んだメモなどを残しておこうと思って書いて行こうと思います。
概要
「2022年モダンデータスタック」
Modern Data Stackについての記事はたくさんあるので、読んだ方もいるかも知れない。
最近では
- Data Processing Frameworks(データ処理フレームワーク)
- Visualization Tools(可視化ツール、BIツール?)
- ETL Tools
- Development notebooks(JupyterNotebookみたいなやつかな?)
- Data Catalog
といったものが現れてきている。
時代とともに新しい技術がでてきている。ETLがELTになり、さらに、ReverseETLtみたいな
過去データに関するワードとしては、OLTP、OLAP、BigData、DataLake、DataLakehouseといった言葉がでてきていた。(まだまだ新しい技術、概念は出てくるだろうぁ
Modern Data Stackと従来のデータスタックの大きな違いは、Mordern Data Stackは、クラウドでホストされているため、ユーザの負担(メンテナンスや構築)が非常にすくないことがあげられる
(田代コメント)
ニアゼロメンテナンスってSnowflakeがいうてたけど、それがモダンデータスタックの肝ですね
DataSource
-
構造化データ(CSVとか)
-
半構造化データ(JSONとか)
-
非構造化データ(動画とか)
とデータの形式がふえるし、 -
ソーシャルデータ
-
マシンデータ
-
ストリーミングイベント
-
トランザクションデータ
といった様々な種類のデータも扱えるようになってきている。
最近ではリアルタイムデータも増えてきている
Data Processing Frameworks
この言葉は、HadoopのMapReduceフレームワークの登場以降に広まった。MapReduceフレームワークが世界中でもてはやされた時代もあった。しかし、短期間のうちに、MapReduceフレームワークのいくつかの懸念は、Apache TezやApache Sparkのインメモリ計算によって解決されました。また、リアルタイム処理のために、Flink、Samza、Stormなどのフレームワークも登場した。
(田代コメント)
↑MapReduceとかもあまり効かなくなったなぁ、それよりも一歩進んでる気がする
ETL/ELT
収集されたデータをターゲットシステムに取り込み、変換し、保存するために使用されるツールです。現代のETLツールは、主にトランザクションデータベースやデータウェアハウスからのデータ読み込みをサポートする従来のETLと比較して、大きく変化しています。従来のETLは、拡張性に乏しく、信頼性に欠け、高価であり、俊敏でデータ駆動型の現代の組織にとっては時間がかかるものでした。一方、モダンETLはクラウドETLとも呼ばれます。これは、モダンETLがクラウド環境でジョブを実行するように進化したため、スケーラブルで高速、かつリアルタイムでデータを処理できるようになったという事実によります。
(田代コメント)
ETLからELTになってきていますよね。ぜんぶDWHに叩き込んで、DWHのパワーを使ってTする
Tだけを担うツールもでてきている(dbtやDataform)
- Fivetran(SaaS)
- Airbyte(OSSと有償のCloudがある)
- trocco(Embulkベース)
クラウドサービスの中で
- AWS Glue
GCP系だとDataflowとか・・・?
OSSでは
- Airbyte
- Embulk
Connector / Integration
近年、クラウドサービスやアプリケーション、システムからデータを簡単に接続し、取り込むためのコネクター/統合ツールが数多く開発されています。社内外のコネクタを使用して、重要なエンタープライズアプリケーション、データベース、記録システムに迅速に接続することを支援します。データソースから他のシステムへのデータ転送に必要な労力と時間を削減することができます。
(田代コメント)
ETLツールに含まれている気がする。
FacebookAPIなど、予告なしに使用が変わったりするから、このあたりを毎回スクラッチするよりは、ELTツールを活用したいところ
ただ、全部にELTツールを使うのはコストがかかる(従量課金)なので、そこはうまく使い分けて、最適なコスト(=とはいっても、会社によってその比率は変わると思うが)を
Data Lake
データレイクは、あらゆる形式のデータを保存する最新のアプローチの1つで、オンプレミスまたはクラウドで構築することができます。クラウドファイルシステムやオブジェクトストア(S3、Azure Blob)の短所である更新・削除機能、タイムトラベル、ACIDトランザクション、スケーラブルなメタデータがデータレイクの中核機能である。Databricksは最近、データレイクハウスという言葉を導入し、データと機械学習に関するSparkの旅をより高いレベルまで引き上げました。
(田代コメント)
DataLakeってのは、S3とかGCSの機能だけではなく、それをもっと管理するためのもの・・・ってのが新鮮
ただ、Snowflakeとかでは、Lake層(=取り込み層)を作って、そこに全部持ってしまう・・ってのでもいい気がしてる。
Cloud Object Stores
S3, Azure Blob, Oracle Filesystem, IBM Filesystemなどのクラウドオブジェクトストアは、Hadoop Distributed File System (HDFS) の特徴に基づいて構築されているが、近年、クラウドオブジェクトストアは大きく改善されてきている。クラウドオブジェクトストアのほとんどは、使いやすいユーザーインターフェイスを備えており、安全性、耐久性、コスト効率に優れています。
(田代コメント)
耐久性がすごくて、とても安い・・・・
これが現在のデータ関連のコストが劇的に安くなった、モダンデータスタックが成り立つ大きな要因とおもってる。
Warehousing
TeradataやOracle Analyticsのような従来のデータウェアハウスと比較して、最新のクラウドベースのウェアハウスは拡張性が高く、数時間で簡単に導入することができます。
- 圧縮ファイル、JSON、Avro、ORC、Parquetなどの様々なフォーマットからなるデータの一括ロード・アンロード
- 外部テーブルの概念を用いたS3やAzure Blobなどのクラウドファイルストレージからのデータロード
- きめ細かいセキュリティモデルの提供とアカウント間での安全なデータ共有
- データの複製とフェイルオーバー防止などの特徴を備えています。
(田代コメント)
DWH製品ですね。BigQueryやSnowflakeでどんどん進化してる。
Querying tools
データスタックは、データベースやデータレイクなどのベースエディタであるクエリツールなしには完成しません。多くのツールは、標準的なSQLをクエリ言語として使用しています。しかし、HueはHive Query Languageに依存し、Apache PigはPig Latin Scriptsを使用してデータを照会する必要があります。SQLか非SQLかに関係なく、すべてのツールは、ユーザーがデータやそれぞれのスキーマ、テーブルの概要を理解するのを助けるという同じような目的を果たす。
(田代コメント)
具体的には、ReDash的な・・・?
いまいちよくわからない・・・・
Visualization
ビジネスインテリジェンス(BI)は、ビジネスアナリティクス、オペレーションアナリティクス、データマイニング、データインサイト、データプログレス、ベストプラクティスを組み合わせ、企業がデータドリブンな意思決定を行えるよう支援するものである。他の分野と同様に、可視化もクラウドに偏っています。可視化ダッシュボードのほとんどは、インフラやそれに伴う時間を気にすることなく、リアルタイムに作成することができる。最近加わったSupersetやRedashは、Tableau、Looker、Quicksightなどの既存のツールとともに、この分野で良い競争相手になっている。
Orchestration tools
これは、最初の開発段階が終了した後の本番ジョブのスケジューリングとモニタリングの一部をカバーするものです。AirflowとLuigiはしばらく人気があったが、KubeflowとDatabricksのMLFlowが追加された。しかし、どのツールも他のオーケストレーション・ツールと比較して突出した特徴を持っています。
(田代コメント)
airflowやDagstar、Prefectとかも出てきている。
いわゆる「ワークフローエンジン」かな
Notebooks
データエンジニア、機械学習エンジニア、データサイエンティストにとって、IDE以外の開発環境として、Notebookは人気のある開発環境の1つです。主に、ScalaやPythonのプログラミングでSparkのコードを開発するために使用されます。また、SQLクエリ、シェルスクリプト、その他のユーティリティの実行もサポートしています。Databricksのようないくつかのノートブックは、コードを本番環境に直接デプロイすることもサポートしています(Live Tables、MLFlow)。
Data Quality
データセットのテストは、常に人々が見過ごす側面の1つです。Amazon DeeQuとGreat Expectationsは、データに対する自動プロファイリングとテストの自動生成によって、データのユニットテストを支援します。これは、多くの大規模なプロダクションデータセットの品質を、規定時間内に検証するのに役立ちます。
(田代コメント)
Great Expectationsは、dbtに組み込まれてる?ので知ったが、非常に有用だと思う。
Amazon DeeQuってのは知らなかったので、ちょっと調べてみようかな
Data catalog
データセット、ビジネスインテリジェンスレポート、ビジュアライゼーション、会話など、企業全体の情報ソースに関するデータ検索、イノベーション、ディスカバリー、メタデータのリポジトリをサポートするものです。データカタログは、ビッグデータ環境におけるHiveカタログの導入時に、より一般的になりました。従来のデータスタックでは、データカタログは主に開発者がより迅速にデータを検索し、理解するために使用されていました。しかし、最近のデータカタログは、データ分析、ガバナンス、データディスカバリーなど、より幅広いデータインテリジェンスソリューションを提供するために使用されています。
(田代コメント)
GCPのDataCatalog、Infomatica、最近出たところでは、Quallio
OSSだと、Datahub、Metadata
troccoは、現在はBigQuery対応、2022年内にはSnowflakeを対応予定ってのはおっしゃっていた
Discussion