Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AthenaとStep Functionsで簡単ETLオーケストレーション #midosuji_tech

AthenaとStep Functionsで簡単ETLオーケストレーション #midosuji_tech

2024年6月12日 (水) に開催された『クラメソおおさか IT 勉強会 Midosuji Tech #1』で発表した内容になります。
https://classmethod.connpass.com/event/317976/

Nayuta S.

June 15, 2024
Tweet

More Decks by Nayuta S.

Other Decks in Technology

Transcript

  1. 3 今⽇の内容 Amazon AthenaとAWS Step Functionsを組み合わせると、 AWSだけで簡単にETL処理(データの読み出し・加⼯・書き込み)が できて便利︕ • Athenaで、SQLで簡単にビッグデータ処理が実⾏できる。

    (本来はGlueやPySparkの使い⽅を覚える必要があるが、今回の構成では不要。) • Step FunctionsのAPI統合を使うことでワークフロー化できる。 ビジネス指標のモニタリングや機械学習モデルの⼊⼒⽤に ⽇々集計しておく必要がある。 AWS Cloud 検索実行用 ステートマシン 集計 元データ リクエスト 集計後データ イメージ
  2. 4 今⽇の内容 Amazon AthenaとAWS Step Functionsを組み合わせると、 AWSだけで簡単にETL処理(データの読み出し・加⼯・書き込み)が できて便利︕ • Athenaで、SQLで簡単にビッグデータ処理が実⾏できる。

    (本来はGlueやPySparkの使い⽅を覚える必要があるが、今回の構成では不要。) • Step FunctionsのAPI統合を使うことでワークフロー化できる。 という話がしたかったが、データエンジニアリングの要件は近年より多くなってきており、 ほかにも考えることがある。(DMBOKで議論されているデータマネジメントなど) • データリネージ • データ品質 • などなど… • 簡単構成を例に、なにがどう便利か、 より良くするにはなにが必要か、ということをお話ししたい。
  3. 9 この構成でできること・できないこと できること • マネージドサービスだけでETLが実装できる。 • SQLが書ければビッグデータ処理が実装できる。(PySparkなど書かなくて良い) できないこと ① SQLで参照するテーブルの依存関係(データリネージ)は取れない。

    ② 単体ではデータ品質はチェックできない。 ③ パーティション分割したテーブルの際に、過去分のデータ再作成が難しい。 (100パーティションまでのクォータ) ※⽤語については次のスライドで補⾜します。
  4. 10 ⽤語の補⾜ • データリネージ • データがどの組織を流れ、どのように変換されるかを表す情報・図。 • データ品質 • データが信頼できるかの指標。データをビジネス活⽤する際にはデータが⾼品質である必要がある。

    例えば、あるカラムが仕様の範囲に収まっているか、決められたバリエーションの値を取っているか、など。 • パーティション(Athenaにおける) • AthenaでS3からスキャンされるデータ量を削減するための仕組み。 • 例えば、年⽉カラムyyyymmをパーティションキーに設定しておき、where句で指定することで、 全データではなくその年⽉のデータのみをスキャンできる。 • パーティションを年⽉⽇カラムyyyymmddにすると、100⽇分の再作成でクォータに達してしまうため、 ⼯夫が必要になる。
  5. 15