データパイプライン活用における「知見」だけでなく「つらみ」も共有 – Data Pipeline Casual Talk Vol.2 に参加してきた #DPCT
前回「第1回」の開催となった「Data Pipeline Casual Talk」、参加レポートについては下記エントリで言及させて頂きましたが、イベントとしては驚異の競争率且つ実際参加した内容も非常に参加者に好評なものとなっておりました。
- Data Pipeline Casual Talk - connpass
- データパイプラインに関する知見をカジュアルに語る! Data Pipeline Casual Talkに参加してきた #DPCT | DevelopersIO
その1回目の好評を受けて、早速の「第2回」が予定され、2019年04月17日(水)にイベントとして開催されました。第2回は「ブログ枠」が設けられていましたのでその枠を使って参加を確保。当エントリはその参加レポートとなります。
目次
参加レポート
開会の挨拶&会場説明
開会
- 司会進行: 機械の体を手に入れるのよ鉄郎(@tetsuroito)さん
イベント最初の「開会の挨拶」は前回同様@tetsuroitoさん。毎度お馴染みの「カジュアルトーク」の定義を紹介しつつ、
AWS Casual Talks#1 で説明したカジュアルとはを再掲 http://t.co/CdlqWIlDES #awscasual
— con_mame (@con_mame) 2014年4月18日
前回の内容をさらっとおさらい。前回は殊の外、予期せぬ形でAirflowに関する発表内容が多く、「Airflow祭り」の様相を呈していたことを振り返って、今回は各種枠の構成を調整。主催者のこだわりでもある「データパイプラインに携わる者たちの"ツラみ"」について『本日も色々な形で、沢山ツラみが聞けることと思います。また、出てきて欲しいです』と前振り的なコメントを残しました。
(※前回の振り返りでは参加レポートブログについても言及して頂きました。ありがとうございます!)
会場説明
- 発表者: たむたむ(@tamtam180)さん / スマートニュース
今回の第2回開催会場となったのはスマートニュース株式会社様オフィス@渋谷。ご覧の様に綺麗なオフィスで過ごしやすく、また発表内容もとても見易い作りになっていました。会場説明・諸注意が@tamtam180さんからアナウンスされます。
レッチリ流れてるしオシャレだー#dpct pic.twitter.com/bwEuYfPxb8
— にのぴら (@nino_pira) 2019年4月16日
『電波が無いと行きていけない皆さんのために、大事なことなので繰り返しお伝えします』とWi-Fi情報を念入りに情報共有。(※地球くんかわいい)
スマートニュースさん、2019年4月に福岡オフィスを新たに開設。アプリのダウンロードも4000万を突破、国内だけでなく米国への展開にも注力しているとのことで『パイプラインの辛みに耐えられなくなったら是非弊社に』とHiring。今回は会場ご提供、ありがとうございました!
Talk1: SmartNewsを支えるデータパイプラインとその運用
- 発表者: keisuke(@keisuke303)さん / スマートニュース
本編1本目は引き続きスマートニュースから@keisuke303さん。
入社して1年半、現在はSRE(Site Reliability Engineer)として分析基盤構築・運用に携わっている上でのポイントやツラみなどについて紹介しました。
- データの活用は進んでいる、従業員の殆どが何らか活用している
- 大まかな全体像は以下。全体管理に利用しているのはAirflow
- 事業の成長・ユーザー増加に伴いトラブルも増えた
- トラブル対応コスト増、ETLパフォーマンス遅延、prestoやairflowが火を噴く(エラー発生時に表示されるAAはトラウマと化す)
- 運用体制の整備:よくない状況が続いていたので主担当者の採用を開始、現在は国内SREとして1名、データエンジニアとして1名で運用。
- 少人数での運用を回すために
- 冪等性の保証は重要、どこからでも何度やり直しても同じ結果になるように設計
- パイプラインの監視:不正データの検知、結果データのチェックなど
- 検証環境の準備、データや処理の追加を仕組み(フロー)化
- dmp担当者が依頼作業等だけに時間を費やさないようにする(直近タスクだけで無く、中期的な課題解決に時間を割けるように)
- 今後の課題
- バージョンアップに追従する仕組みの整備
- 監視・自動化の強化
- データフォーマットや設定の最適化
- Streaming Processingの拡充
- まとめ:
- 作って終わりではない。手を停めずによりよい状態に保つ努力を続けることが必要。
Talk2: 限りなくストリーミングに近いバッチ処理を目指して
- 発表者: きょんたん(@sukukyon)さん / リクルートテクノロジーズ
2人目の登壇者である@sukukyonさんは現在、リクルートテクノロジーズの『アルバイト』(&来年就活)としてデータ分析基盤の構築・運用に携わっているとのこと。
バッチ処理を支えるデータレイクの更新を高速化しようとした話として、更新対象となっているBigQueryのデータ(マスタ)をいかにして更新するか、また差分更新をいかに高速に行うかという部分について技術的な解説を合計60ページの大作スライドにまとめました。インデックス張っておくの大事!!
発表資料
Talk3: digdagで支えるデータパイプライン
- 発表者: ユウキ(@yukiyan_w)さん / JUBILEE WORKS
3人目の登壇者はJUBILEE WORKSより@yukiyan_wさん。
TimeTreeというカレンダーシェアアプリの開発に携わり、主にデータ分析基盤の仕事に従事。digdagを使ってデータパイプラインをどう組んでいるのか、また、実際に構築した事例や失敗談について紹介していきました。
- digdagで実際に組んだパイプライン事例
- MySQLのデータをBigQueryに流す
- 特定データの抽出結果をslackへアップロード
- NPSの内容をslackへ通知
- あるテーブルの任意のカラムをkuromojiで形態素解析後、名刺をGoogle Natural Language APIに噛ませてエンティティ分析
- あるテーブルの任意のカラムを材料に、fastTextでNLPにおける単語の分散表現を取得
- Spark(databricks)のためのデータ準備と学習の実行
-
失敗談
- digファイルはDRYにしすぎない
- OOM対策が職人じみている
- BigQueryのデータセットの分け方
- BigQueryのスキーマ自動推論を使う場合の注意
発表資料
LT1: こんな感じでデータパイプライン作ってます2019年春
- 発表者: ゆうく(@yuku_t)さん / FLYWHEEL
今回はLTも、通常セッション同様3本の発表がありました。
1本目のLTは、FLYWHEELより@yuku_tさん。
滑り出しから「お、これはマルチクラウドにおけるパイプラインのお話が聞けるのか...?」と思いきや、実は「シェルスクリプトによるパイプラインからの脱却」に焦点を当てたお話でした、という展開。ワークフローをCloud Composer(Airflow)で管理する方法に置き換えていくのですが、所々で出てくるCloud Composer利用における「ツラみ」の数々。『でも、どんなに辛くても昔を思い出せば頑張れる』というコメントに笑いながらも胸の奥底がキュッとなったのでした...(せつない
LT2: バルクロードがつらい
- 発表者: た そ(@__sotaron__)さん / エウレカ
2本目のLTは、エウレカより@sotaronさん。前回第1回に引き続き、発表者としての参加です。
内容はタイトルそのままド直球の『バルクロード、辛くないですか?』というもの。バッチ処理とストリーム処理の使い分け、及びそれらのツラさを共有し、それらの『対策』として考えているものが幾つかあるのだけれど、どうでしょう何か良い案無いですかね...という感じで発表と相談を兼ねた語り口となっておりました。懇親会で何か良い解決策・ヒントが見つかっていることを祈ります...(  ̄人 ̄)
LT3: 推薦のためのdata pipelineのモニタリングとロギング
- 発表者: はずみ(@hazumirr)さん(Wantedly)
LT最後の3本目はWantedlyより@hazumirrさん。
推薦のためのデータを作成する上で発生する問題や課題に対応すべく、モニタリングやロギングを行って行こう、その際のあるべき姿、やるべきことについての情報を整理・解説した内容となっていました。
まとめ
LT終了後はそのまま会場後方に用意された懇親スペースで美味しいお寿司と飲み物(呑みモノ)でしばしの懇親タイム。
パイプラインにまつわる「つらみ」な部分が出てくるものはやはりこういう懇親の場でこそ本音と深い話が聞けるのか、方方で盛り上がりを見せていた懇親会でした。会場御提供頂いたスマートニュース様、また主催及び登壇者の皆様、ありがとうございました!