A bridge to the Cloud
Damien Contreras ダミアン コントレラ
Customer Engineer Specialist, Data Analytics,
Google Cloud
アジェンダ
はじめに 移行する前の 準備
DWHの移行 について
1 2 4
GCP と連動
5 6
データの表示
01
はじめに
移行する前に | データウェアハウスの欠点
コスト
データ増加 データ形式対応外
リアルタイムの負担は受 けられない
セルフサービス分析が難 しい
スタースキーマとディメン 表ションとファクト表に合わ せる
ベンダーロックインの心 配
移行する前に | データレイクの欠点
クラスターのリソースの バランス
バージョンアップ
複数のデータレイクが構築 される
パートナー、人材採用が困 難
コスト
移行する前に | Google Cloud の価値
弾力性のある構 コストパフォーマン
スが良い
サーバーレスでNo-ops
サイロはない ANSI SQL-2011
セキュリティー
02
移行をする前に考
えること
パートナーと
Google リソースが 協力し合う
移行する前に | 社内にスキルはない場合
Cloud plan & cloud deploy
Partners
BigQuery のスター ターパック
グーグルの支援
https://cloud.google.com/partner s/?hl=ja
移行する前に | TCO & ROI
アンケートを記入するだけ で
総所有コストのも計算
データと関連データの
発見 Proof of
Concept
基盤を構築
周りのシステム と通信用のツー
ルの構築 ソースデータを
移行 機械学習
1 2
6 5 4
3
サイロ化に なっている データセット
誰でも ML を 使えれるよう
に
移行する前に | クラウドで構築
03
DWH の移行について
Teradata IBM Netezza
移行する前に | DWH 移行対応
Teradata
t
t n r
RedshiftAWS
m
Azure SQL
h
Hadoop
o
Oracle
s
Snowflake
v
Vertica
b
SAP BW
?
その他
BigQuery
IBM Netezza から
13
IBM Netezza | アーキテクチャ
FPGA CPU メモリー FPGA CPU
メモリー
FPGA CPU メモリー
Host (Linux
サー バ)
Disk
Enclosure S-Blade Network
fabric
Symmetric Multiprocessing
(SMP) 複数のマイクロプロセッサ
Massively Parallel Processing (MPP) 大量な並行処理
AMPP Architecture
NZSQLコマンド:DML, データダンプ JDBCコネクター:SQLクエリ
IBM Netezza | データタイプ
IBM Netezza の 31 タイプを全部 BigQuery でマッピングが出来ます
IBM Netezza BigQuery
VARCHAR STRING
BOOLEANま
たBOOL BOOL BigQuery : TRUE / FALSE
Netezza : True / False, 1 / 0, yes / no, on / off TIME / TIMETZ
TIME_WITH_TI/ ME_ZONE
TIME BigQuery : の TIME でタイムゾーンはない
ARRAY Netezza : VARCHARのデータタイプに保存
IBM Netezza | それ以外の違い
IBM Netezza BigQuery
拡張性
テラバイトのスケールまで:TwinFin (all N2001) また Striper (all N2001); 最大:
320 Terabytes
ペタバイト
データモデル Relational DBMS - 圧縮比:1:3 Distributed Columnar Database - 圧縮比
:1:10
SQL SQL-92とSQL-99のエクステンション SQL-2011
処理エンジン MapReduce Dremel
UDF C++ Javascript
ストアドプロシージャ NZPLSQL BigQuery のSQLでストアドプロシージャを 書くalphaになります
フィールド名 日本語対応, 最大:128バイト A-z, A-Z, 0-9 また underscore “_” 最大
:128 文字
● IBM Netezza のデータタイプを BigQuery のデータタイプにマッピング
● フィールド名のマッピング
● IBM Netezza の SQL からに使用されてるクエリを ANSI SQL-2011に切り替えます
● C++ の UDF を BigQuery の UDF に書き直す ストアドプロシージャを他の仕組みで対応
● データソースのと連携ツールを選択する
○ 最初のデータ移動方法
○ 定期的なデータ更新方法 (差分管理)
IBM Netezza | チェックリスト
IBM Netezza | カバレッジ
データ通信 データ形式
UDF SQLクエリ
ストアドプロシージャ データ量
JDBCコネクター
コマンドラインでデータダンプ BigQuery のSQLでストアドプロ
シージャ(alpha) C++ → Javascript
ペタバイト対応 マッピング可能
書き直し可能
Teradata から
Teradata | アーキテクチャ
CPU CPU メモリー CPU CPU
メモリー
CPU CPU メモリー
Dual BYNET Interconne
cts
Massively Parallel Processing
(MPP) 大量な並行処理 最大: 1024 ノード
Teradata MPP Architecture
O S
O S
O S SMP
Nodes
Server Management
BTEQコマンド:DML, データダンプ, 複数のインスタンスからデータクエリ
JDBCコネクター:SQLクエリ
Teradata | データタイプ
Teradata の全てのタイプを BigQuery に
Teradata BigQuery
VARCHAR STRING
INTERVAL_HOUR, INTERVAL_MINUTE, INTERVAL_SECOND,
INTERVAL_DAY, INTERVAL_MONTH,
INTERVAL_YEAR
INT64 BigQuery: 期間のデータタイプない
PERIOD(DATE), PERIOD(TIMESTAMP_
WITH_TIME_ZONE), PERIOD(TIMESTAMP),
PERIOD(TIME)
STRING BigQuery: 期間のデータタイプない
Teradata | それ以外の違い
Teradata BigQuery
拡張性 テラバイト ペタバイト
データモデル Relational DBMS - 圧縮比:最大:1:10 Distributed Columnar Database - 圧縮比
:1:10 SQL Teradata SQL 一部 SQL-2011 ベース (書き
直すことは出来ます) ANSI SQL-2011
処理エンジン Dremel
UDF SQL Javascript
ストアドプロシー
ジャ SQL BigQuery のSQLでストアドプロシージャを書く
alphaになります フィールド名 A-z, A-Z, 0-9 またアンダースコアー “_” , ド
ル “$”, シャープ “#” 最大:30 文字 A-z, A-Z, 0-9 またアンダースコアー “_” 最大
:128 文字
Teradata | カバレッジ
データ通信 データ形式
UDF SQLクエリ
ストアドプロシージャ データ量
JDBCコネクター コマンドラインでダンプ BigQuery のSQLでストアドプロ
シージャ(alpha) SQL → Javascript
ペタバイト対応 マッピング可能
書き直し可能
Hadoop から
24
Hadoop | アーキテクチャ
CPU メモリー
CPU メモリー
CPU メモリー
O S O S O S CPU
メモリー
O S CPU
メモリー
O S
w o r k e r N o d e m a s t e r N o d e
HDFS : ファイルシステム Yarn:リソース管理
ハードウエアー
Spark Hive Hbase Kafka
Slider
Phoenix
Z o o k e e p e r
Tez
Network ソフトエアースタック
ハードウェアスタック
s q o o p n i f i
データウ エアハウ
ス
キーバリュー データベス
メッセージ ブローカ
JDBCコネクター:SQLク エリ
専用のAPI
専用のAPI
フルマネージド、Hadoop / Spark、
カスタマイズ可能なマシン
90 秒以内で立ち上げて、エフェメラル またオンデマンドのクラスター秒単位の 請求
データの暗号化
Hadoop | GCP Dataproc
ジョブ
Cloud Dataproc
Cluster 1
クラスター作成 処理の結果書込 み
Cloud Dataproc
削除
クラスター削除
Stack driver
Logging &
monitoring
データ
Cloud Storage Bucket BigQuery
Hadoop | GCP Dataproc 一時的なクラスター
アドホッククエリまたインタラクティブクエリを起動 (Hive, Impala, Kudu, Drill, Druid, AtScale、
MaprDB, …)
Hadoop | マイグレション選択マトリクス
データウェアハウスの処理
クエリーを書き直しても大丈 夫ですか
Cloud Dataproc
BigQuery
NoSQL を使ってます
NoSQL を使ってますか
HBase を使ってますか Accumulo を使って、移行 がしたくないのでそのまま 使いたい
Phoenix を使ってますか
BigQuery Cloud
Dataproc
また
Cloud Bigtable
いいえ
いいえ いいえ
はい
はい
はい
はい はい
● Hive データタイプを BigQuery のデータタイプにマッピング
● Hive の UDF また SerDe を移行計画
● Hive に使用されているHQLクエリを ANSI SQL に切り替えます
● HDFS に保存されてるバイナリーファイルの処理プロセスを移行の計画
● Spark, MapReduce また Pig script のデータ処理の移動計画
● HBase のデータ移行の計画
● Zeppelin ノートブックの移行計画
● Kafka が使われているフローの移行計画
● Sqoop のスクリプトを基づいて、データソースのと連携ツールを選択する
○ 最初のデータ移動方法
○ 定期的のデータ更新方法 (差分管理)
Hadoop | チェックリスト
Hadoop | カバレッジ
データ通信 データ形式
UDF & Serde SQLクエリ
データ処理 データ量
JDBCコネクター HDFSのダンプ対応 専用のAPI
SQL / Java → Javascript
ペタバイト対応 マッピング可能
書き直し可能
書き直し可能 Dataprocに起動
BigQueryのSQLでストアドプロ シージャ(alpha)
04
GCP との連動
GCP のサービスを紹介
32
ETL 処理 Pub/Sub
GCP | Data pipeline 全体図
データソース ランディング・ゾー
ン 加工 / 処理 活用
ETL/ESB 蓄積 / DWH 分析
Legacy EDW
バッチ
他社のツール
ELT を SQLで パートナーのツール / Datafusion / Data Transfer Service
Cloud storage
公開 データ
セット
BigQuery
ストリーミング
34 耐久性と高可用性を両立させた
BLOB ストレージ(オブジェクトスト レージ)
安全で耐久性のあるデータ保管 容量管理が不要
転送中のデータと保存データの暗号 化
パフォーマンスとコストバランスの取 れたストレージクラス
BigQuery や Dataflow, Dataproc な どの分析サービスとの統合
GCP | Cloud Storage
35 信頼性の高いリアルタイムメッセージング
サービス
グローバルに設計された高い可用性 プロビジョニングが不要で自動処理 At Least Once 配信
多彩なパターンで利用が可能
GCP | Cloud Pub/Sub
連携パターン
GCP | データパイプラインの連携ツール選択
Cloud
Pub/Sub Cloud BigQuery
Dataflow Cloud Dataproc
Cloud Dataprep
Data Transfer Service
Data Fusion ソース
Hadoop S3 Bucket
Bq load
Teradata
t
Netezza
n
RedShift
r
ランディング・ゾー
ン 加工 / 処理
ETL/ESB 蓄積 / DWH
ESB / ETL
RDBMS
Cloud Storage Exadata
e
DWH
...
GCP | データパイプラインの連携ツール選択
Sqoop / NiFi + Spark またMR
ジョブズ クラウド
ネーティ ブ
No
その他 の ETL ツール
Talend Informati
ca Intelligen
t Cloud Services
今現在、データ連携のツールがすでにあ りますか (ESB, ETL)?
はい
GCP に行く時にデータパイプライン(デー タ通信またデータ処理)を GCP で最適に 再構築?
カスタムロジックまた複雑なデー タパイプラインを Java また Python で書いてコントロールし たい?
Cloud Dataflow
はい
GCP から(プル)それぞれのデー タソースに接続したい?
bq load GCP API
いいえ
カスタムロジックまた複雑なデー タフローをビジュアルツールで作 りたい?
いいえ はい
Data Fusion
はい
データ整理だけが必要、ビジュア ルデータ探索したい、ルールベー スで構築したい
Dataprep
程的にデータをデータソースから シンクしたい場合
Data Transfer Service
はい
はい いいえ
いいえ
Cloud Dataproc
パート ナーの
ETL ツール
いいえ はい
いいえ
いいえ
バッチで、ファイルの構 でデータ送る
構 化データの場合
オンプレミスのスケジューラーの対応
GCP | BQ Load
向いている場面
データをオンプレミスからプッシュする時
GCP | BQ Load
事例
BigQuery ソース
Cloud
Storage bq load ランディング・ゾー
ン
加工 活用Visualize
ETL/ESB 蓄積 / DWH 分析 Analyze
gsutil cp スケジューラー
BigQuery bq load
スケジューラー
1
2
GCS を経由
直接の書き込み
GCP | BQ Load
詳細
コマンドライン、Java, C#, Python, PHP, Ruby, Node.js, Go
ローカルディスクからロードをしたい時、
制限:
● コマンド毎 10MB 以下また 16,000 のレコー ド
● フォルダまたWildcardは使えない
バッチもしくはストリーミング対応
データフローをマージー、データ変換、データマッピ ング:複雑なデータフローを構築する時
マネージドサービス
GCP | Data fusion
向いている場面
GCP | Data fusion
事例
BigQuery Data
Fusion Data
Warehouse ランディング・ゾー
ン 加工 活用Visualize
ETL/ESB 蓄積 / DWH 分析 Analyze
Netezza
n
Cloud Pub/Sub
Data Fusion
Cloud Storage
1 バッチ
1 ストリーミング
GCP | Data fusion
詳細
No-opsのデータパイプラインの構築と管理のための統 合サービス
フルマネージド型のデータ統合また処理 統一されたバッチとストリーミング
GUIでグラフの形で(DAG)フローの流れをビジュアル で作れる
エラー管理
メインのデータベースとデータウェアハウスと連携:IBM Netezza, Oracle 12c, Redshift, Kudu, MySQL, MS SQL Server, IBM DB2...
Beta
バッチ & ストリーミング
コードで複雑な処理を描きたい
GCPのサービスと連携したい時、テンプレー トを使いたい場合
GCP | Dataflow
向いている場面
GCP | Dataflow
事例
Cloud
Pub/Sub Cloud BigQuery
Dataflow Data
Warehouse ETL/ESB Landing 加工 蓄積 / DWH 分析 Analyze 活用Visualize
オープンソースのプログラミング モデル
サーバーレスでフル マネージド型のデー タ処理
何百万もの QPS に合わせた自動最適 化
Python また Javaで使い慣れた言語で 統一されたバッチとストリーミング
47
GCP | Dataflow
詳細
BigQuery へのデータの移動を自動化するマネー ジド サービス,コネクターが Teradata, S3,
redshift、さまざまなソースから
信頼性の高いデータ取り込み(アップタイム SLA と データ配信 SLA)
データ配信のスケーリング
GCP | Data Transfer Service
向いている場面
GCP | Data Transfer Service
事例
BigQuery Data
Warehouse
S3 Bucket
Landing 加工 活用Visualize
ETL/ESB 蓄積 / DWH 分析 Analyze
Data Transfer Service
GCP | Data Transfer Service
Data Transfer Service
様々なソースから (AWS S3, AWS Redshift, Redshift, …)
数クリックで設定はできます
スケジューラー、通知の機能も
今すでに使われている場合
データをオンプレミスからクラウドへ
ビジュアルでフロー構築
Partner | Informatica
向いている場面
データ周りの完全管理:data Catalog, MDM
Partner | Informatica
Informatica PowerCenter - use your ETL to integrate
BigQuery Data
Warehouse Hadoop
Oracle RDBMS
O
Landing 加工 活用
ETL/ESB 蓄積 / DWH 分析
Informatica
PowerCenter 1 オンプレミス
Informatica PowerCenter
2 クラウド
Informatica intelligent Cloud Services
BigQuery Hadoop
Oracle RDBMS
O
Informatica Cloud
Informatica Cloud
Partner | Informatica
ChangeDataCapture 対応 (Oracle, Db2, SQL Server, MySQL)
GUI で出来る:
データマッピング スキーママッピング フロー構築
ログファイルの構 解析
データウエアハウスマイグレション対応:
Netezza, Teradata また Hadoop のコネクター すでにある Tier で GCP 対応:
Tier C で標準で GCS のコネクター Tier D で直接の BigQuery コネクター
GCP | データ連携のパートナー
1000+ partners
04
データを表示する、
BI ツール
05
スプレッドショート直で BigQuery のデータを
BI ツール | Google スプレッドシート
SQL が書けなくってもデータにアクセス できる
データが見れるから簡単にすぐ理解は できる
BI ツール | データポータル
GUI でダッシュボード作れる
データソースがまとまってなくても様々なデータソー スを Join できる
テンプレートで簡単にダッシュボード作れる
カスタムグラフを D3.js を使って、Javascript で作る
● BigQuery と統合
● クラウドなのでスケーラブル
● どこでもからアクセスは出来る
● 50 以上のデータベース直接接続
BI ツール | Looker
GCP | パートナー
1000+ partners