ゼロETLについて調べてみた

# はじめに
こんにちは。
先日、AWSの最新情報について調べることがあり、そこで「ゼロETL」に関する情報が多くありました。
ゼロETL...？恥ずかしながら初めて聞いた単語でした...
ただ調べるだけだと味気ないのとアウトプットしたほうが頭に残りやすいと思うので、記事にしました。
※個人的な備忘録に感じに近いですがご了承ください。

# ETLとは？
ゼロETLの話をする前にそもそもETLとは何なのかも知らなかったので、ETLのことから調べてみました。
ETLとはExtract(抽出)、Transform(変換)、Load(格納)の略語で、データ統合時に行う各工程の頭文字をとったものです。

 * Extract(抽出)：様々なデータソースからデータを抽出する。取り出すデータの構文を解析して、対象データかどうか判別する。
 * Transform(変換)：抽出したデータをターゲットに書き出すために変換する。
 * Load(格納)：変換したデータを書き出して格納する。

![スクリーンショット 2024-01-07 111902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2513710/eb73215c-5695-c68c-6c02-85457d9dcb1d.png)

ETLのプロセスを用いることで未加工のデータを分析で利用しやすい形式にすることができ、開発工数の削減、データ品質の向上が見込めます。
AWSのETLサービスはAWS Glue、AzureはAzure Data Factoryが該当します。

# ELTとは？
本題とは少し脱線しますが「ELT」と呼ばれるプロセスもあります。
これは、抽出(Extract)、格納(Load)、変換(Transform)の略で、データを抽出するところは同じで、格納と変換の順序がETLと逆になります。
抽出元で変換するのがETL、先に格納して格納先で変換するのがELTになります。

ほぼ同じように見えますが、ELTのメリット、デメリットがあります。
メリットは、対象データを出すだけなのでETLよりも格納元に負荷がかかりません。
デメリットは、統合先で変換するため、統合先に大きな負荷がかかります。この負荷により他の処理への影響が出たり、変換処理のために容量を多く使うこともあるので、余裕をもって容量を見積もる必要があります。

# ゼロETLとは？
ゼロETLの内容に戻ります。
ゼロETLとは、ユーザ側でETLパイプライン(企業のデータを一元管理し、すべてのデータソースからデータベースやデータウェアハウスに取り込むこと)を構築をせず、データの移動や参照ができるようになることです。
「ELTとは？」にも記載した下図の構築がなくなるということです。

![スクリーンショット 2024-01-07 111902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2513710/eb73215c-5695-c68c-6c02-85457d9dcb1d.png)

今まで、ETLプロセスに関して下記のような課題がありました。
* システムの煩雑さが増える：ETLパイプラインのデータの不整合や競合処理が複雑になる。
* 追加料金：ETLパイプラインはデータ量が増えることでコストが高騰する。
* 分析、AI、MLにかかる時間の増加：ETLでは通常、カスタムコードが必要でその改修作業に工数が増大する。

ゼロETLによって下記のようなメリットがあります。
* 敏捷性の向上：データアーキテクトを簡素化してくれるため、柔軟性があがります。この柔軟性によって敏捷性が期待できます。
* コスト効率：ゼロETLはスケーラブルなサービスのため、余計なリソースを使わず、コスト最適化できます。
* リアルタイムインサイト：従来のETLプロセスは定期的なパッチ更新が必要になることが多いが、ゼロETLではほぼリアルタイムのデータアクセスを提供します。

# ゼロETLになった場合のイメージ
ゼロETLについて概要を把握したところで、「じゃあ、ゼロETLによってどのくらい恩恵があるのか？」ってところが気になると思います。
もし、AWS上でデータ活用基盤を作るとなると一例として下図のようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2513710/c19cb189-ea88-8a5a-228a-956ff68a19f9.png)

ここではETLツールとしてAWS Glueを使っていますが、ゼロETLをうまく使えばAWS Glueの構築や管理を減らせて、場合によってはAWS Glueをなくすこともできるかもしれません。(もちろん、要件次第では省略できない可能性もあると思いますが、あくまでも一例としてイメージしていただければ...)
これによって、AWS Glueの構築、運用、コスト削減などありがたい部分が多そうです。
ただ、ゼロETL対応をしているリージョンやサービスはまだ一部だけなようなので、そこは今後のAWSアップデートに期待しましょう。

# 最後に
いかがでしたでしょうか。私と同じようにゼロETLを知らなかった方の参考になれば幸いです。

# ゼロETLアップデート情報
* [AWS が Amazon DynamoDB と Amazon Redshift のゼロ ETL 統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-dynamodb-zero-etl-integration-redshift/)
* [AWS が Amazon Aurora PostgreSQL と Amazon Redshift のゼロ ETL 統合 (パブリックプレビュー) を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-aurora-postgresql-zero-etl-integration-redshift-public-preview/)
* [AWS が Amazon RDS for MySQL と Amazon Redshift のゼロ ETL 統合を発表 (パブリックプレビュー)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-rds-mysql-zero-etl-integration-amazon-redshift-public-preview/)
* [AWS が Amazon DynamoDB と Amazon OpenSearch Service のゼロ ETL 統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-dynamodb-zero-etl-integration-amazon-opensearch-service/)
* [Amazon S3 との Amazon OpenSearch Service ゼロ ETL 統合 (プレビュー版) が利用可能に](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-opensearch-zero-etl-integration-s3-preview/)

# 参考
* [ETL (抽出、変換、ロード) とは何ですか?](https://aws.amazon.com/jp/what-is/etl/)
* [ETLとは？3つの機能とツールの必要性、選び方のポイントも解説！](https://www.dal.co.jp/column/a-etl/)
* [AWSのETLツール「AWS Glue」とは？](https://www.stylez.co.jp/columns/what_is_aws_glue/)
* [ゼロETLとは何ですか？](https://aws.amazon.com/jp/what-is/zero-etl/)