BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース YelpがData Pipeline ProjectとData Pipeline Client Libraryの最新版をオープンソース化

YelpがData Pipeline ProjectとData Pipeline Client Libraryの最新版をオープンソース化

ブックマーク

原文(投稿日:2017/01/06)へのリンク

昨年末にYelpはPythonとApache Kafkaベースのデータパイプラインのクライアントライブラリをオープンソース化した。そのライブラリは、データパイプライントピックを公開および消費するインターフェースを提供する。これまでの議論では、Yelpのデータパイプラインコンポーネントと、分散サービスのデータインテグレーションに伴う課題、つまり、N+1問題とメトカーフの法則について説明があった

データパイプラインを使う動機付けと正当性についてYelpは、新しいデータパイプラインの利用を開始することで年間一千万米ドルを節約できると報告している。データパイプラインのクライアントライブラリはリリースされたばかりの最新コンポーネントである。Yelpのエンジニアリング担当副社長、Jason Fennel氏は次のように述べている。

我々を勢いづけているものは、自分たちのデータウェアハウスを見てきたことです。我々はすべてのデータをまとめ、ビジネスと戦略の担当者はデータに基づいて、売上、戦略、製品戦略に関する決定を下すことができます。そのプロセスは以前は完全に手作業でした。MySQLのどのテーブルについても、エンジニアがデータウェアハウスに持っていく必要があります。それは数日から数週間の仕事でした。我々はデータウェアハウスに注目し始めました。我々のデータをすべて入手するには10から15年かかるでしょうが、我々はすぐに必要でした。私たちがこのパイプラインに投入した時間と努力を考慮しても、このシステムを構築することで、エンジニアリングコストを1千万ドル削減できたと思います。Salesforceを接続すると、その数値をプッシュし始めます。

サービスはクライアントライブラリ経由でパイプラインから消費する。YelpではSalesforceRedShiftMarketoなどのターゲットにフィードされる。このライブラリは、Kafkaのトピック名、暗号化、および消費者の分割を扱っているとのことである。メッセージブローカを介したサービス通信の中央化と、変わることのないスキーマに対するバージョン付けは、ダウンストリームの消費者を保護するのに有効である。また、それが幅広くデータパイプラインを積極的に採用することに対する動機づけとなっている。

例えば、サービスを支える上流のMySqlデータベースから積まれていく物理的な変更やビジネスロジックのデータは、YelpのMySqlストリーマを使用してメッセージを公開することによって、Kafkaにストリーミング配信できる。Schematizerとデータパイプラインクライアントはトピックのスキーマ、データ型、書式を登録し、メッセージに関連するメタデータを付与し、下流における消費のためにバージョン管理する。メタデータラッパは、さまざまなペイロードタイプとkafkaトピックのメッセージ間の一貫性を保証するが、ペイロードコンテンツ自体は変更データキャプチャに使用され、ダウンストリーム更新時にKafkaストリーミングとログ圧縮を利用する。

新しいパイプラインにより、アップストリーム変更とデータウェアハウス更新の間のエンドツーエンドタイムが大幅に改善された。Fennell氏は次のように述べた。

我々は、データを取得するのに3週間かかっていたプロセスを数秒に短縮することができました。他のものにもプラグインとして提供し始めました。Salesforceだけでなく、多くのビジネス戦略担当者が使用するRedshiftがそうです。MySQLのような他のシステムを接続してログがデータパイプラインに入れると、Kafkaはセントラルルーティングレイヤーを形成します。つまり、ソースの追加により乗法的な影響を受けます。
 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT