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
BigQuery・Glue・S3・QuickSightの連携をしたお話
Search
kenkentarou
June 04, 2022
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BigQuery・Glue・S3・QuickSightの連携をしたお話
BigQuery・Glue・S3・QuickSightの連携をしたお話
kenkentarou
June 04, 2022
More Decks by kenkentarou
See All by kenkentarou
株式会社Relic_臺健太郎_RubyWorldConference2022発表資料.pdf
kenkentarou
0
260
Other Decks in Technology
See All in Technology
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
18
14k
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
180
大阪オフィスに Unitree Go2 がやってきたので Physical AI やってみた
dafujii
0
250
The seven pitfalls of AI (revised version)
ufried
0
220
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
500
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
1
1.2k
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
140
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
580
Apache Iceberg が拓く AI 時代のオープンレイクハウス
tomtanaka
0
210
AIアプリを使い分けるための共通ツール基盤を考えてみる#devio2026
osawa
0
120
サーバーフルコンピューティング?AWS Lambda
iwatatomoya
0
140
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
100
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
The Pragmatic Product Professional
lauravandoore
37
7.5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
560
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Writing Fast Ruby
sferik
630
63k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
580
Crafting Experiences
bethany
1
370
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
780
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Transcript
臺 健太郎(Dai Kentaro) 株式会社Relic テクノロジープラットフォームグループ BigQuery・Glue・S3・QuickSightの連 携をしたお話
色々なやり方があると思います。 ご意見等あれば、発表後にご教示いただけると幸いです。 また、マサカリ大歓迎です。
自己紹介 • 臺 健太郎(だい けんたろう) • 出身: 大阪府 • 株式会社Relic
テクノロジープラットフォームグループ/バックエンドエンジニア • 入社約2年2ヶ月 = エンジニア歴 • 初めてコードを書いたのは2019/9 • 業務でよく触る分野 ◦ Rails,Nuxt.js,AWS,GCP,Docker,CircleCI,GithubAcitons etc • twitter: kenkentaro@kenkentarouu • facebook: https://www.facebook.com/kentaro.di/
• 閲覧数などの情報をGAで管理 • 自分のプロフィールや投稿が閲覧された回数など を記録して、それをQuickSight上で表示したい。 (もちろんユーザーにも) • BigQueryのデータをわざわざQuickSightで見ようと する理由は、BigQuery上のデータとRDSのDBデー タをガッチャンこして見たいという要件があったから。
完成形(簡単にざっくりやりたいこと) • QuickSight上で以下のような表示を目指したい。
• 赤枠以外のところがRDSに保存されているDB データ • 赤枠のところがBigQueryに保存されているデー タ • それら2つを結合してQuickSight上で一覧表示 したい •
ソートしたりフィルターかけたりCSV出力したりし て分析したい
• アプリ側のコードにGoogleAnalyticsのタグを埋め込み • ユーザーがイベントを踏むと発火しデータをGoogleAnalyticsへ送信 • GoogleAnalyticsで取得しているデータをBigQueryに定期的にエクスポートして BigQuery上に永続化しておく • BigQuery上で1日前のデータが入ったテーブルを作成して日々データを追加して いくクエリの定期実行をスケジューリングする(22:30に実行)
• AWS上でGlueを使いコネクター経由でBigQuery上のテーブルデータをその実行 時点までの全件取得して取り込んでCSV形式に変換してS3へ吐き出す定期実行 のジョブを作成し一度実行 • AWS上でGlueを使いコネクター経由で1日前に追加されたBigQuery上のテーブ ルデータを取り込んでCSV形式に変換してS3へ吐き出す定期実行のジョブを作成 し1日1回実行するようにスケジューリング(23:00に実行) • S3へ置いたCSVデータとQuickSightを連携させる • QuickSight上で連携したCSVデータをとRDSのDBデータとを結合させ一覧表示
文字が多すぎてわからない.............
アプリサーバー FirebaseAnalytics event送信 - pageviewなどの規定イ ベント - カスタムイベント BigQueryのSQLパラメータを 付加してAPIリクエスト
アプリサーバーを介して BigQueryの実行結果を受け 取る FirebaseAnalytics BigQuery Google Cloud Platform 連携 ・ネイティブ側はアプリサーバーを介して BigQueryの結果を受け取る ・FAとBigQueryをあらかじめ紐づけておく ネイティブから受け取った BigQueryのSQLパラメータ を使ってBigQueryAPIでリ クエスト 1日一回定期的に FAの データをBigQueryにエクス ポートしてBigQuery上で永 続化
FirebaseAnalytics Google Cloud Platform 1日一回定期的にFAのデータを BigQueryにエクスポートして BigQuery上で永続化 テーブル BigQuery クエリ定期実行
AWS Glue S3 テーブル生成 (データを日々追加していく) CSV形式へ 変換 ジョブの定期実行の中で S3 へデータを吐き出す CSVデータ を保存 QuickSight データを閲覧 コネクター経 由 Glueのジョブを 定期実行してテーブル データを取り込む RDS 接続 接続
• アプリ側のコードにGoogleAnalyticsのタグを埋め込み • ユーザーがイベントを踏むと発火しデータをGoogleAnalyticsへ送信 • GoogleAnalyticsで取得しているデータをBigQueryに定期的にエクスポートして BigQuery上に永続化しておく • BigQuery上で1日前のデータが入ったテーブルを作成して日々データを追加して いくクエリの定期実行をスケジューリングする(22:30に実行)
• AWS上でGlueを使いコネクター経由でBigQuery上のテーブルデータをその実行 時点までの全件取得して取り込んでCSV形式に変換してS3へ吐き出す定期実行 のジョブを作成し一度実行 • AWS上でGlueを使いコネクター経由で1日前に追加されたBigQuery上のテーブ ルデータを取り込んでCSV形式に変換してS3へ吐き出す定期実行のジョブを作成 し1日1回実行するようにスケジューリング(23:00に実行) • S3へ置いたCSVデータとQuickSightを連携させる • QuickSight上で連携したCSVデータをとRDSのDBデータとを結合させ一覧表示
BigQuery概念 下に行くにつれて粒度が細かくなります。 • プロジェクト • データセット ◦ データセットとは、BigQueryで扱うテーブルの集合(デー タベースのようなもの) •
テーブル ◦ データセットの中のテーブル
https://cloud.google.com/bigquery/docs/scheduling-queries?hl=ja クエリの定期実行について 定期実行用のクエリを作成し日々のテーブルを生成してい く
• 基本構文 ◦ SELECT句にカラムをそのまま指定して、FROMにはプロ ジェクト名.データセット名.テーブル名 BigQueryで使うSQLの基本 SQLを実行するとその結果を元にテーブルを作成することがで きる
• フルマネージドサービス • 「Glue」というのは「接着剤」 • AWS上のデータ間のやり取りを管理する「仲介者」 • 今回はコネクターというものを使いBigQueryとAWSを仲 介 •
ジョブの実行をすることで定期的にBigQueryからデータ を取り込んでS3に出力するために使用 「AWS Glue」とは
こういうジョブのスクリプトを書けます
QuickSightから見る • QuickSightの単位 ◦ 分析 ▪ ダッシュボード ◦ データセット ▪
データソース(RDSのデータやS3のCSVデータなど) を元にして作成される概念 ◦ データソース ▪ データソースはRDBのデータであったりGlueでS3に 吐き出したデータなど
S3をデータソースとして作る場合 • マニフェストファイルという設定ファイルをアップロードすると 指定のバケットのデータにアクセス可能となる • Glueで取り込んだS3上のCSVデータが格納されているS3 バケットを指定する
データの結合 • S3から取り込んだデータセットと、RDSのデータソースを結 合して閲覧
https://dev.classmethod.jp/articles/20220423-amazon-athena-connect-to-bigquery/ ご参考
ご清聴ありがとうございました!!!