Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ペチコン2019資料
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Senoue
January 28, 2019
Technology
270
1
Share
ペチコン2019資料
Senoue
January 28, 2019
More Decks by Senoue
See All by Senoue
Go(5)分で! ECC暗号を動かして理解する BuriKaigi 2026
senoue
2
71
Goカードゲームを 作ってみた!
senoue
0
240
App_RunnerとRDSを活用したスケーラブルなWebAPI構築とインフラの自動化.pdf
senoue
1
150
チャンネルを完全に理解する
senoue
0
92
Real-time Communication in Go with Melody and WebSockets
senoue
0
180
Adobeの生成AIのこと を調べてみた
senoue
0
230
ソフトウェア開発におけるAI :CopilotとGenie
senoue
0
230
Sendai.go x GDG Cloud 仙台 ハンズオン
senoue
0
83
GoでMecab
senoue
0
400
Other Decks in Technology
See All in Technology
分断された OT と IT を繋ぐ架け橋 -Kubernetes が切り拓く 産業用組み込み製品の現在地 -
yudaiono
1
120
全社統制を維持しながら現場負担をどう減らすか〜プラットフォームチームとセキュリティチームで進めたSecurity Hub活用によるAWS統制の見直し〜/secjaws-security-hub-custom-insights
mhrtech
1
600
20260515 ログイン機能だけではないアカウント管理を全体で考える~サービス設計者向け~
oidfj
1
820
Purview Endpoint DLP 動かしてみた
kozakigh
1
450
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.7k
Claude Code / Codex / Kiro に AWS 権限を 渡すとき、何を設計すべきか
k_adachi_01
6
1.8k
マンション備え付けのネットワークとLTE回線を組み合わせた ネットワークの安定化の考案
harutiro
1
140
R&D 祭 2024 UE5で絵コンテ・作画の制作支援ツールをつくる話
olmdrd
PRO
0
190
既存プロダクトQAから新規プロダクトQAへ
ryotakahashi
0
160
そのSLO 99.9%、本当に必要ですか? 〜優先度付きSLOによる責任共有の設計思想〜 / Is that 99.9% SLO really necessary? Design philosophy of shared responsibility through prioritized SLOs
vtryo
0
840
TypeScriptで実現する既存APIを活用したリモートMCPサーバー構築 / TSKaigi 2026
soarteclab
0
110
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
690
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Site-Speed That Sticks
csswizardry
13
1.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
690
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Prompt Engineering for Job Search
mfonobong
0
300
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
310
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
700
The Limits of Empathy - UXLibs8
cassininazir
1
330
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
180
Transcript
DWH (データウェアハウス) つくってみた、くらべてみた 株式会社ビデオマーケット 瀬上 祐匡 2019/1/26 PHPカンファレンス仙台2019
瀬上 祐匡(せのうえ ひろまさ) 株式会社ビデオマーケット サーバサイドエンジニア 現在、GAE/Go で、サービス開発をおこなってます。 直近は、AppleTVのサーバサイド、バックオフィスシステムの構築・改修(Laravel) 仙台市出身 ビデオマーケット入社3年目。
前職は、受託開発+自社サービスの開発・運営(LAPP+cakePHP) 好きなサービスは、Cloud Function 茂庭台中学校のPTA会長やってます モノノフです。ハリネズミ飼ってます Twitter @senoue Facebook senoue.hiromasa 自己紹介
株式会社ビデオマーケット 2005年6月 フィーチャーフォン向け、Video On Demand(VOD)事業を開始 2011年8月 スマートフォン向け開始 2014年6月 PC向け配信開始 2016年3月 仙台オフィス開設 2017年8月 配信作品本数 20万本達成 海外・国内ドラマ、アニメ、バラエティ番組など20万本以上を配信
最新作品ほぼあります。 自社サービス以外にも、 music.jp、dmm.com とも 業務連携中 沿革
DHW構築にあたって つくってみた くらべてみた
DHWってなに? データウェアハウスとは、直訳すれば「データの倉庫」である。利用者により定義範囲は異なるが、一般に時 系列に整理された大量の統合業務データ、もしくはその管理システムを指す。 参考:Wikipedia 自分の理解 BIを利用するのに、分析情報(顧客情報、購買履歴)などを 適切な形で、運用に影響の出ないようにデータを貯めておくもの で、取り出しやすいように、データの整理をしておけば、 どんな形でもOK データレイク、データマートなるものもある?
単純にコピーするだけでなく、データの整形なんかも必要そう
データベースの把握 会員情報:数百万件・・・ログインID 利用履歴:数千万件・・・操作ログ 購入情報:数千万件 作品情報:数十万件 データベースは、負荷分散のため、 3つに分かれています。 毎日DWHに差分を、保存する必要がある
くらべるもの GCP AWS
なにで作る? 1.世の中的にPythonがいいらしいから、Pythonを使おう 2.管理画面とか作りたくないから、Jupyter Notebook でごまかそ う 3.GCPとかいろいろ使ってみたいな 4.あとでAIとかつかってごにょごにょしたいな さて、方向性は決まったので、 どうやって実現するかを、
メンバーと考えました。
最初に考えたアーキテクチャ
まず検証環境構築 コンテナ環境:mariadb-columnstore-docker/columnstore-jupyter $docker-compose up -d http://localhost:8888 5分で完成しました。 コンテナ素晴らしいですね でしょ
作って動かしてみた pandas,matplotlib, google.cloud, boto3のパッケージを利用。 Jupyter なので、簡単に作成できます。 テーブルは、3つに分散されているので、 CSVは3ファイルづつ作成されます。
データレイクの確認 データレイク(S3 or GCP) にCSVファイルで保存されました。 これを毎日、動かせば、 差分のデータ作成は終了です。 Pandasで、CSVの作成もラクラクです。 ※3行で出来ちゃいます。 でしょ
パンダ最高
ETLの検証 Extract/Transform/Load(略称:ETL)とは、データウェアハウスにおける以下のような 工程を指す。 Extract - 外部の情報源からデータを抽出 Transform - 抽出したデータをビジネスでの必要に応じて変換・加工 Load
- 最終的ターゲット(すなわちデータウェアハウス)に変換・加工済みのデータをロード 参考:Wekipedia AWS・・・Athena、Glue GCP・・・Dataflow こちらも早速使ってみましたが。高い・・・あっという間に、無料枠を使っちゃいまし た。 しかも、使い勝手よくない!ということで・・・
ETLの設計 というわけで、作りました。 AWS・・・Lambda GCP・・・CloudFunction こちらも、Pythonで作りました S3もGCPも、イベント駆動が簡単にできます 特定のディレクトリにファイルが入ったら、 データをマージするように設計します ※サンプルは、Lambdaです
定時バッチの仕様 データの差分取り込み - upsert,margeを実行 - 作品データなどは小さいので洗い替え - 毎日5:00に可動
フロー図
実際の計測結果 CSV・・・自社DBから、CSVの作成 StagingDB・・・TempDBへのCSVインサート UPSERT・・・TempDBから、MasterDBへのDELETE&INSERT、もしくはマージ データの送信は、GCSが早い、 マージはRedshift速いですね、GCPの3倍近く早い。 AWS GCP AWS GCP
AWS GCP CSV StagingDB UPSERT 会員情報 14.00 4.22 5.87 35.41 6.30 18.09 操作ログ 50.50 9.07 8.95 56.31 9.65 29.98 購入履歴 30.24 7.80 8.47 46.18 8.98 22.18 単位:秒
金額でくらべてみました【AWS】 - Redshift・・・時間課金( 0.314USD/時間) - Lambda・・・実行数課金 (無料枠:1,000,000件リクエスト有 - S3・・・データ量課金 (当初3年分保管予定)
金額でくらべてみました【GCP】 - BigQuery・・・クエリからデータ取得料で金額が変わる、 *だと無駄になる。 同じクエリならキャッシュされるので、比較的安価(スト レージ+クエリ数) - Cloud Function・・・実行数課金 (無料枠:200万回)
- GCS・・・データ量+データのアクセス頻度で課金 (Nearline Storage:$0.01/GB)
金額でくらべてみました Service DWH ETL ストレージ 合計 条件 21GB/月 300万回 30GB/月
AWS 25,094.0 22.2 2.8 25,119円 GCP 1,509.0 44.4 33.3 1,586円 GCP 圧勝
最終的に現在の構成はこうなった 最終的に、、、、 AWSでリザーブドの環境を準備することになりました。 - 定額である+年払いするとやすかった - Tableauとの相性がBigQueryが悪かった - 他社実績なども考慮 ということで、現在運用中です
できたこと □負荷低減[Load reduction] 単純作業なので、サーバへの負荷0kcal □コスト削減[Cost reduction] バッチを作りつつ、管理画面も作れた。 その上でベンチマークも取れる。 現在も、4ヶ月になりますが、順調に動作しています。
できなかったこと ▪Notebook→pyへは、変換作業が必要 直接実行ファイルにすることはできなかった。 ▪バッチのトリガーは結果、Shellにしてしまった cronで実行するにあたって、エラー処理も含め、結果shellに なった この辺は、今後の課題です。
結果的に何がよかった? 仙台出身のしがないエンジニアですが、今回のようなデータ分析など の業務に携わることができています。 自由な言語で開発をしてみましょう。 趣味でもいいです、とりあえず、触ってみましょう。 PHPを否定しているわけではないです。 他の言語にふれることで、PHPの新たな発見もあります。
時代はデータドリブンである - データを見ることでわかることがたくさんある - 実際にやってみることで、新しいキヅキがある - 最初は小さなデータでもいいので、集めてみよう - 継続的に確認できるサービスにすべきである
ビデオマーケット宣伝 本日、ビデオマーケットブースにて、 VODサービスの利用状況の調査を 行っています。 お答え頂いた方にステッカーをプレゼント していますので、ぜひお立ち寄りください。 当社のVP of Engineering も会場におります
「Googleアシスタントアプリ開発入門」という 本もスタンプラリーでプレゼントしています。
ご清聴ありがとうございました。 ビデオマーケット仙台オフィスでは、エンジニアの採用を行っております。 新しいことにも積極的にチャレンジしています。 ジョブボードも、掲載していますので、 ぜひ、一度オフィスに遊びにいらっしゃってください。 ・コーポレートサイト https://www.videomarket.co.jp/recruit-form/ ・Green https://www.green-japan.com/job/76539?case=login