こんにちは!
DB大好きなPKと申します。データエンジニアをやっております。
弊社の優秀なエンジニア達は新しい技術に常にアンテナを張るべく、最新の技術情報収集手段として外部セミナーに積極的に参加してしております。
外部セミナーに参加する目的は情報収集手段と気持ちのリフレッシュ、新しい技術を触って見ようと思うきっかけになったり、他社の事例を通して自分達のアーキテクチャ設計時に参考したり、メリットはたくさんあると思います。
主に参加してるイベントはデブサミ、JJUG、GCP NEXT、Java day tokyo、DB tech showcase、cloudera world Tokyo、Scala Matsuri 、DataWorks Summit などがございます。
今回私は先週9/19~9/21まで秋葉原UDXでインサイトテクノロジー社主催のdb tech show case Tokyo 2018 #dbts2018に初日と二日目参加してきましたので、そのレポートを記事にさせていただきます。
9/19,9/20はgcp nextも開催されてましたので、弊社のエンジニアは2部隊と別れての参加となりました。
dbtsですが、私としては今年で4年連続参加となりますが、毎回RDBをはじめ、NoSQL、Hadoop eco system 、グラフデータベース、時系列データベース、ハードウェア、クラウド環境関連などなどさまざまな話を聞けて大変ありがたいイベントだと思っております。
さて、現場へGo!
Day1
秋葉原UDX 6FのConferenceスペース行くと受付で名刺2枚渡して3日間通して使えるパスを取得できます。
そして初日の午前中しか聞けないキーノートのセッションへ
キーノート
セゾン情報システムズCTOの小野さんから大変面白い且つ現実味のある話を聞いて、元SI業界で数年間働いた身として頷ける話ばかりでした。
最初から最後まで面白い話と真剣な話をバランスよく交えながらスピーチされて1時間ちょいという長いセッションにも関わらず、最後まで集中して聞けました。
さすが、キーノート!クォリティーが高いです。
お話の概要としてはセゾン情報システムズで行なわれたエンジニアとしての働き方を革新した内容がメインでした。
途中で入って最初は聞けなかったのですが、エンジニアとして印象に残った部分としては
・ 美しいコードとか、新しい技術とかチャレンジしたいけど、予算とかの兼ね合いで中々難しい
・ でも最終的にはそうしたほうが技術的な負債もすくなくて助かる
・ ソースコード管理はGit導入し、デイリーコミットを実現
(中には作りこみ途中のコードをコミットして他人に見られるのを恥ずかしがるエンジニアもいるがそんな必要はない、女優とプログラマーは見られてキレイになる!?(名言ですね)
・抱え込まないことが大事、何かあればすぐにヘルプを出す
・脆弱性、セキュリティ問題も早い段階で見つけられる
・コミュニケーションはSlack導入、全社的に普及してきてる
・モダン開発推進→ひとりではなくチームワークで作っていこう、ペアプログラミングなど
・現場で大事なHRTの原則
Humility
Respect
Trust
などなど、貴重なお話が盛り沢山でありがたいセッションでしたー!
そして、次はインサイトテクノロジー社の新社長の挨拶、過去の振り返りと抱負と今後の展望についてのお話でした。
Allen Miner社長の日本語がとても上手でビックリしましたー!
そしてキーノート完了したら11時45分からお昼の時間に。
午後のセッションどれにすべきか悩みながらお昼は大好きな中華料理♡
午後1は弊社で色んなサービスで使われてるElasticsearchのセッションへ(SQLモード気になる
ElasticsearchのSQLのお話
聞き取れた概要だけピックアップすると
beatsファミリー良さそう
- Filebeats
- log 収集、可視化が簡単にできる(Apache, Nginxなどから
- log 収集、可視化が簡単にできる(Apache, Nginxなどから
- Metricbeats
- パフォーマンス情報収集ツール (Postgreのポートとip指定するだけでスロークエリの解析とかできるらしい
- パフォーマンス情報収集ツール (Postgreのポートとip指定するだけでスロークエリの解析とかできるらしい
- Filebeats
SQLの話 (ver 6.3以降から使える)
- ElasticsearchのDSL辛いよね、大体みんなここで挫折してしまう(私も。。
- だからSQLのtranslate api提供した
- ただし、Read onlyだけ、desc、select など
- where句に書ける検索条件は複雑なものはまだサポートしてない
- やり方は一つは上ののtranslate apiにsqlを投げる方法とCLIから直接書く方法
- JDBCドライバーを使ってアプリからSQL投げる方法もある
- kibanaからsampleデータを登録してくれる機能もできたらしく、入門しやすくした感じがする
- ElasticsearchのDSL辛いよね、大体みんなここで挫折してしまう(私も。。
Impalaパフォーマンスチューニングの話
- SQLの見直しより、アーキテクチャーの見直し
- ただし、バージョンは最新がおススメ
- メトリクス情報をちゃんと取ることが重要
- cpu,memory,disk ioなど
- disk ioのチューニングについて
- ストレージ層の最適化
- parquetフォーマットが良いけど、ケースバイケースで
- partition設計もしっかりやるべき
- 適切な期間で区切って読み込む量を減らす
- ストレージ層の最適化
- cpu,memory,disk ioなど
といった内容でした、結構チューニングにおいて定番の話でもう一度勉強させていただきました。
。。と初日のレポートは以上になりますが、上記以外も面白いセッションが盛り沢山な一日でした。
Day2
二日目のレポートです。
以下、個人的に印象に残ったセッションをピックアップします。
hdfsの新機能のお話
Hadoop 2.9、3.x で実装される予定のhdfsの新しい機能のお話でした。
- 従来のNameNode federationはNameNodeの負荷分散の為複数NameNodeをViewFSにマウントポイント記載して一つに見えるようにしてた。
- でもViewFSのマウント情報クライアントが管理するので、複数クライアントだと難あり、そこに登場したのがRouter based federation機能。
- RouterはWebHDFSも提供してる。
なんとなくキーワード覚えてあとで詳細勉強しておきたいと思いました。
詳細勉強しておかないとhadoop 3.xはついていけなさそうですね
これ以外もNameNodeのHA構成の問題点とそのアプローチ、Heterogeneous Storage policyの話、Erasure Coding(DataNodeのストレージ使用量がレプリケーションと比べて半分になる)などなど面白いお話をたくさん聞きました。
ロコンド社のMySQLのバージョンアップのお話
- バックエンドのDBはMySQL使ってるがもともと5.6使ってた
- CM効果でアクセス数が急激に増えてきて安定性と高可用性を保つためInno db cluster使いたい
- そのために5.7にバージョンアップする必要がある
- エンジニアが少人数なので、DB障害も自動回復が望ましい、スケールアウトのしやすさなどの理由もある
実務レベルのコマンドとかノウハウとかたくさんあってすごくありがたいセッションでした。
Postgresqlとgpu最新機能を利用してTB級のデータを扱うお話
- pg-stromというPostgresqlのextensionを使えばSSD → GPU間でNVIDIAのGPU Direct という技術を使って
CPU介さずデータのやり取りができるお話、大量のデータを統計分析するときに使える。 - ターゲットとなるデータボリュームはTB級、SQLとRDBそのまま使ってTB級のデータを扱えるのは大きなメリットがある。
詳細はスピーカーの海外さんのブログにも書いてありました。
すごく勉強になるし、面白いセッションでした。
最後に
2日間の参加を終えてた感想としては毎回のことですが、セッションのバリュエーションが豊富なのと
セッションの登録が事前に必要ないので、気になってたセッションに参加できてとても充実した二日間でした。
セッション選びに関しては基本的に実務に関連あるものを優先して、あとは個人的に面白そうだと思ってるセッションを聞いております。
そして、ほかのエンジニアもそうですが、毎回自分が面白いと思った技術とかは触ってみて社内の勉強会で共有したりして
セミナー参加の良いサイクルを作ることに努力しております。
最後にいつものことですが、弊社はエンジニア・デザイナー絶賛募集中ですので、興味ある方は下のリンクよりご応募くださいー!