狠狠撸
Submit Search
gcpug_okinawa_#2_hiroshi_kawakami
?
Download as PPTX, PDF
?
1 like
?
335 views
H
Hiroshi Kawakami
Follow
GCPUG in Okinawa! #2 での発表資料です。内容はほぼCloud Dataflowについての話
Read less
Read more
1 of 34
Download now
Download to read offline
More Related Content
gcpug_okinawa_#2_hiroshi_kawakami
1.
沖縄と私とGCP GCPを業務で使用して 得られた失敗と知見 By 川上博@pialab
2.
自己紹介 川上 博(33)♂ ?元はSIerで客先常駐 ?ほぼJava言語ばかり、Python?Go少々 ?サーバサイドのコードだけ書いていた ?客先でクラウド基盤ツールの案件に放り込まれる ?クラウドへの熱を抱えたまま数年??? ?縁あって現在の会社「PIALab.」(ピアラボ)へ 個人:Facebookで「hiroshi kawkami」と検索 会社:「PIALab」と検索
3.
弊社システム ユースケース
4.
?他社様データを日時でアップロード ?アップロード先はCloud Storage(gsutil) ?格納先はBIGQuery ?お客さん毎にBucket、Datasetを分ける ?他社様システムには手を加えることは不可 ?S-JISでアップロードするお客様がいる ?現在はお客様毎にETLしているが、将来的に汎用 的なものを作成し、どんなデータが来てもBQに格 納したい
5.
ファイルアップロード Cloud Storage BIG Query ファイルアップロード Cloud Storage これを ETL処理
BIG Query こうしたい
6.
そうだCloudDataflow があるじゃない
7.
CloudDataflow を使ってみた
8.
?バッチ?ストリーム処理を並列で処理 ?各GCPサービスをシームレスにコール ?今の所Javaのみ(今後対応予定) ?ETL(Extract/Transform/Load)にも使える どんなサービスか
9.
バッチ?ストリームを並列で処理 ?ソースコードがデプロイされるとInstanceが自動で起動 ?処理内容を判断して必要なリソース分Instanceをスケール ?データをRecord単位でInstance上に分散、並列処理する ?処理が終了すると自動でサーバを停止、削除(※バッチモードのみ)
10.
各GCPサービスをシームレスにコール 対象サービス ?Cloud Datastore ?Cloud Pub/Sub ?Cloud
Storage ?Cloud BIGTable ?BIGQuery ※小難しい認証処理はSDKが肩代わりしてくれるよ
11.
実装イメージ
12.
public static void
main(String[] args) { Pipeline p = Pipeline.create(new PipelineOptions()); p.begin() .apply(PubSubIO.Read.topic("input_topic") .apply(ParDo.Of(new ExtractTags()) .apply(Count.perElement()) .apply(ParDo.Of(new ExPandPrefixes()) .apply(Top.largestPerKey(3)) .apply(PubSubIO.Write.topic("output_topic") p.run(); } インプット アウトプット
13.
public static void
main(String[] args) { Pipeline p = Pipeline.create(new PipelineOptions()); p.begin() .apply(Create.of("Hello", "World")) .apply(ParDo.of(new DoFn<String, String>() { @Override public void processElement(ProcessContext c) { c.output(c.element().toUpperCase()); } })); p.run(); } #processElement() 部分が分散並列処理されます 他の箇所に変数宣言しても参照 できません
14.
指定可能なinput/output - Cloud Datastore -
Cloud Storage - Cloud BIGTable - Cloud PubSub - BIGQuery ?Input 基本 「xxxxIO.Read」のように記述 例:DatastoreIO.Read()、PubSubIO.Read() ?OutPut 基本 「xxxxIO.Write」のように記述 例:TextIO.Write()、BIGQueryIO.Write() ※Cloud StorageはTextIOなので注意!!!
15.
処理イメージ
16.
デプロイ?起動までの流れ ?コマンドラインまたはEclipseからデプロイ ?デプロイするとライブラリ(jar)とJavaソースがCloud Storageに格納 ?Compute Engine
でインスタンス起動 ?処理開始
17.
デプロイ?起動の方法 ?コマンドラインから - Mavenコマンドで実行(mvn compile
exec:java???) - 各種起動オプションを指定(--project=sample-project) ?Eclipseから - Eclipse Pluginが用意されている(Eclipse 4.4 以降) - 新規Cloud Dataflowプロジェクト作成も簡単に - CloudDataflow用の実行設定メニューで起動オプション指定可 =>ぜひEclipse Plugin使いましょう
18.
処理モードについて ?BatchMode - 一括処理 - 処理終了後、Jobは待機しない -
処理が終了するとInstance数が0に(Instanceをたたむ) ?StreamMode - リアルタイム処理 - 処理終了後もジョブは待機状態 - 待機状態でInputがあれば処理実行されます - 基本Instance数は0にならない - Inputは原則PubSubのみ(PubsubIO.Read) - ジョブの終了はブラウザもしくはコマンドラインから ※起動オプションで切り替え。処理中に変更は出来ない
19.
実际やってみます
21.
困ったこと ?Input(Cloud Storage)/Output(BIGQuery)を動的 に変更したい ?だがxxxxIO.Read、xxxxIO.Writeが基本固定 ?「ComputeEngine経由でCommand Lineから実行 しろ」と公式は言ってる??? ?AppEngine野郎としてはComputeEngine使ったら 負けかなと思っている
22.
助けて?骋辞辞濒驳濒别えも?ん???
23.
Googleサポートチームにメールしました やっててよかったゴールドサポート…
24.
※実際には英語でやりとりしています 公式には書いていないけどAppEngineからコール出来るよ? ままま、まじですか?やってみます???。 出来ないよー。問題のソースを送るので原因教えて下さい 起動オプションが違うよー。 workerMachineTypeはn1-standard-1以上を設定しなきゃダメだよ あざーーっす、やってみまーす うわーん出来ないよー。問題のソース(ry オプションが(ry
25.
うーん、このままだとエンドレスなので サンプルコードをGitHubの公開リポジトリに作成するから参考にしてよ あああ、ありがとうございます。助かります。。。 1ヶ月ぐらいかかるよ。ごめんねー。 ※実際には英語でやりとりしています 1ヶ月たったよ。。。 ごめんごめん、もうちょっとかかるかな。てへぺろ
26.
というわけで 実际やってみます の予定でしたが???
27.
すみません、间に合いませんでした
28.
実際動かせたら公開します PIALabブログ https://pialab.co.jp Facebook GCPUG https://www.facebook.com/groups/1531859033770693/?fref=ts とりあえず目のつく所に共有しますのでしばしお待ち下さい
29.
CloudDataflow まとめ
30.
?重たい処理をサービス跨いで実行したい人はぜひ ?リアルタイム処理を〃 ?バッチモードだと終了後インスタンス0に ?ストリームモードだと課金怖い ?Eclipse Pluginはぜひ使っていこう ?AppEngineから起動できるかも(未確認)
31.
最後に 野望というかお願いです
32.
GCPUG沖縄のFacebookグループ作成しまし た!!!Facebookで「GCPUG OKINAWA」と検索 ぜひ参加してください GCPの知見を共有していきましょう!!!
33.
さらに??? ■bq_sushi BIGQueryを肴に酒を飲むというマニアックな会 とそのFacebookグループ Facebookで「#bq_sushi」と検索 ■GCPUG全体のグループ Googleで「GCPUG」と検索 URLが「gcpug.jp」のページです
34.
さらにさらに??? ?GCPUG Okinawa、もしくは別でGCPについてのハンズオ ンメインの勉強会を開催したい。できれば月1ぐらいで ?手を動かすのが苦じゃない方に参加いただきたい ?AppEngine、BIGQuery、ContainerEngine等の各種サー ビスについて興味がある方 ?何回か1回ゲストに来てもらう or
リモートで ハンズオンしてもらいたいなー ※沖縄行きたいのでゲストで来ますも全然OKです!!! ?Googleさん、今日の登壇者の皆様どうですか? ?#bq_sushiとリモート中継とかおもしろそう
Download