Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Redshift内のデータの活用をAthenaにオフロードしてみた / akiba-aws-o...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Nayuta S.
November 24, 2021
Technology
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Redshift内のデータの活用をAthenaにオフロードしてみた / akiba-aws-online7
Nayuta S.
November 24, 2021
More Decks by Nayuta S.
See All by Nayuta S.
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
210
今年注目する!データ分析プラットフォームでのAIの活用
nayuts
0
220
AIを活用したStreamlitアプリ開発のTipsと、ほかのAI機能との棲み分け
nayuts
0
1k
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
2.2k
Snowflakeで実践する、生成AIを活用した「自然言語によるデータとの対話」
nayuts
0
740
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
2k
FastMCPでSQLをチェックしてくれるMCPサーバーを自作してCursorから動かしてみた
nayuts
1
930
Amazon Athenaから利用時のGlueのIcebergテーブルのメンテナンスについて
nayuts
0
900
目玉アップデート!のSageMaker LakehouseとUnified Studioは何たるかを見てみよう!
nayuts
0
1.6k
Other Decks in Technology
See All in Technology
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
230
企業の現実世界をグラフで写し取る
sansantech
PRO
0
250
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
260
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
110
おそらく日本で唯一のDevRelインターン生として
husengs7
0
130
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
380
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
6
2k
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
270
20260930_Gemma4_Hands-on
tsho
0
210
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
300
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
210
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
670
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Designing Experiences People Love
moore
143
24k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Visualization
eitanlees
153
17k
A Tale of Four Properties
chriscoyier
163
24k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
The SEO identity crisis: Don't let AI make you average
varn
0
570
Designing for Performance
lara
611
70k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Making the Leap to Tech Lead
cromwellryan
135
10k
Transcript
Redshift内のデータの活⽤を Athenaにオフロードしてみた 2021/11/12(⾦) AKIBA.AWS Online #7 データアナリティクス事業部 鈴⽊ 那由太 1
2 ⾃⼰紹介 鈴⽊ 那由太 - nayuts クラスメソッド 株式会社 データアナリティクス事業本部 ⼊社:
2021/05 好きなサービス:Athena、Kinesis、Glue
3 本⽇お話しすること
4 本⽇お話しすること LTの技術的な要点 • RedshiftからS3へのアンロード時にCLEANPATHオプションが便利 • アンロード後にAthenaからデータを検索する際、パーティション射影が便利 想定視聴者 • Redshiftのデータに対して分析処理を⾏いたい。
• Athenaへのオフロードを考えている。
5 LTのテーマ Redshiftのデータを Athenaで処理したい
6 はじめの構成 BIツールなど Amazon Redshift RedshiftにBIツールなどがアクセスするような構成から…
7 ⽬標の構成 BIツールなど Amazon Athena AWS Glue Data Catalog Amazon
S3 Amazon Redshift アンロード 検索 S3にアンロードしたデータにAthenaを通してアクセスするような構成にしたい。
8 ⽬標の構成 BIツールなど Amazon Athena AWS Glue Data Catalog Amazon
S3 Amazon Redshift アンロード 検索 <ϝϦοτ> "UIFOBͷϑΣσϨʔςουɾ ΫΤϦͰ༷ʑͳαʔϏεʹԣஅ తʹݕࡧͰ͖ΔͳͲ S3にアンロードしたデータにAthenaを通してアクセスするような構成にしたい。
9 ⽬標の構成 ① ② BIツールなど Amazon Athena AWS Glue Data
Catalog Amazon S3 Amazon Redshift アンロード 検索 <ϝϦοτ> "UIFOBͷϑΣσϨʔςουɾ ΫΤϦͰ༷ʑͳαʔϏεʹԣஅ తʹݕࡧͰ͖ΔͳͲ S3にアンロードしたデータにAthenaを通してアクセスするような構成にしたい。
10 Redshift内のデータ ※各カラムの説明 year:年(2021または2022) month:年⽉( 112021から012022 ) type:AまたはBまたはC ほかは省略… 以下のようなデータをRedshiftにロードしておく。
11 “⽬標の構成"のしくみ
12 ①アンロード Amazon Redshift cm-nayuts-unload/month_example ├── month=012022 │ └── 0000_part_00.parquet
├── month=112021 │ └── 0000_part_00.parquet └── month=122021 └── 0000_part_00.parquet Amazon S3 <UNLOADコマンド例> UNLOADコマンドにより、SQLでRedshiftのデータをS3にエクスポートできる。
13 ②検索 ※パーティション分割するケース例> • 積み上げられるデータ(トランザクションデータなど) • パーティションを作成する AthenaからS3のデータに対してSQLでクエリを実⾏できる。スキャン量で課⾦。 データを 1.
パーティション分割し、2. 列指向データフォーマットにして、コストを改善できる。 cm-nayuts-unload ├── month=012022 │ └── 0000_part_00.parquet ├── month=112021 │ └── 0000_part_00.parquet └── month=122021 └── 0000_part_00.parquet SELECT col1 , col2 FROM table1 WHERE month = xxxx AWS Glue Data Catalog など Amazon S3 Amazon Athena <1について>
14 基本的な考え⽅のポイント Amazon Athena AWS Glue Data Catalog Amazon S3
Amazon Redshift UNLOADで実現する。 オプションにより、 パーティション分割済 み・列指向な形式でエ クスポートできる。 パーティションごとに検 索してコスト削減できる。
15 基本的な考え⽅のポイント Amazon Athena AWS Glue Data Catalog Amazon S3
Amazon Redshift UNLOADで実現する。 オプションにより、 パーティション分割済 み・列志向な形式でエ クスポートできる。 パーティションごとに検 索してコスト削減できる。 再アンロードしたく なったときに、そのま ま再実⾏してしまって いいの? どうやって追加する の? 無料で⾃動でやってく れるの?
16 アンロードのポイント
17 CLEANPATHオプション Amazon Redshift cm-nayuts-unload ├── month=012022 │ ├──0000_part_00.parquet (旧)
│ └──0000_part_01.parquet (旧) └── month=022022 └── 0000_part_00.parquet Amazon S3 cm-nayuts-unload ├── month=012022 │ └── 0000_part_00.parquet (新) └── month=022022 └── 0000_part_00.parquet Amazon S3 2022/1のパーティションに アンロード 〜イメージ〜 TO句で指定したS3パスにある既存のファイルを削除してから、指定した場所にファイルをアンロードできる。 PARTITION BY句と組み合わせると、指定したパーティションのみファイルが削除される。 WHERE句を変えるだけで、容易に差分変更ができる。 ⽐較)ALLOWOVERWRITE
18 CLEANPATHオプションのメリット ▪2回⽬のアンロード処理 ▪ 2回⽬の結果 ▪1回⽬のアンロード処理 ▪ 1回⽬の結果 アンロード対象のパーティションに関しては、Redshift内のデータと⼀致する。
19 検索のポイント
20 検索するパーティションの決め⽅ ① Athena側で計算する • パーティション射影 ② Glueデータカタログに登録・参照する • SQLから追加する
• ADD PARTITION • MSCK REPAIR TABLE • Glueクローラーを実⾏する など… Athenaから検索対象のパーティションを決めるには、以下のような⽅法がある。 AWS Glue Data Catalog ① ② 検索
21 パーティション射影 <メリット> • 検索前にGlueデータカタログに問い合わせしないので⾼速化が期待できる。 • Glueデータカタログにパーティションメタデータを追加する必要がない。 <注意点> • AWS
Glue Data Catalog または Hive メタストア内のテーブルに登録された既存のパーティションメタデータ は無視される。 テーブルにパーティションキーのルールやフォーマットを設定することで、Athenaで パーティション値を計算できる。
22 パーティション射影の型 型 概要 ⽇付型 ⽇付の範囲とフォーマットを定義し、値を⽇付として解釈する。 整数型 整数の範囲を定義し、値を整数として解釈する。 列挙型 列挙のメンバーを定義し、値を解釈する。
挿⼊型 クエリの WHERE 句で単⼀の値を指定する。 パーティション射影の型には各々の特徴がある。
23 パーティション射影~⽇付型~ <テーブル定義> <検索結果> ⽇付の範囲とフォーマットを定義し、値を⽇付として解釈する。
24 パーティション射影 ~列挙型~ <テーブル定義> <検索結果> ※データは事前にtypeをパーティションキーにしてUNLOADする 列挙のメンバーを定義し、値を解釈する。
25 パーティション射影 ~挿⼊型~ <テーブル定義> <検索結果> ※データは事前にtypeをパーティションキーにしてUNLOADする クエリの WHERE 句で単⼀の値を指定する。
26 列挙型と挿⼊型の違い 挿⼊型はWHERE句で指定される値が単⼀である必要がある。 列挙型は単⼀である必要はないが、メンバーが増えるとDDLを修正する必要がある。 パーティション射影の型の特徴を考慮して設計する。
27 まとめ
28 まとめ • Redshiftでのアンロード時にCLEANPATHオプションを指定すると アンロード先のパーティションのデータが、Redshift のデータと整 合する。 • Athenaでアンロードされたデータを検索する際はパーティション射 影を使うとメタデータを管理する必要がなくなる。
• パーティション射影の型には各々の特徴があり、設計時に考慮する 必要がある。
29