2016-06-22 19 views
1

イベントをBigQueryに追加するには、ModeAnalyticsなどのサービスを使用してグラフを表示する必要があります。BigQueryにイベントをストリーミングする方法は?

私はBigQueryの完全な概念を理解していないかもしれませんが、多分私はそれについて間違った前提をしていますが、私がそれを使用したいのは(種類の)テーブル "イベント"イベント名に基づいてそれにイベントを追加します。

これは

など、「新しいアカウント」、「ユーザ検索」のようなものでしたが、私は見つけることができるすべてのドキュメントは、他のテーブルから多くのデータのロードJSONファイルcsvファイルだった、など

「イベント」テーブルに追加するデータを含むPOSTリクエストのようなことについてのドキュメントを見つけることができませんでした。

どうすればいいですか?

+2

bigqueryはappengineの一部ではありません。 bqストリーミング・インサートを使用してください。読んだり読んだりしたり、bigqueryの基礎を理解しているようですが、必要な読書をしています。 –

答えて

2

cloud pubsubを使用することを検討する必要があります。私はストリーミングモードでホストされる非常に単純な雲data flow componentを作成し、GAEによって提起されたPubSubイベントごとに"streaming inserts"をBQに書き込みます。したがって、基本的にGAEはイベントを発生させ、データフローはPubSubから購読して読み込み、BQに書き込みます。

以下の説明で説明したように、イベントログをタスクキューに書き込んでハンドラでデキューし、BQに直接ストリームすることもできます。私は一般的に、このテクニックでは、多くのイベントを書く場合は特に、このテクニックは一般的に "長期持続"の余分なインスタンスを作成するため(余分なインスタンス時間)、しかし、大量生産のためにこれを避けるそれは簡単な方法であり、データフローとpubsub使用方法と含まれているすべてのものをappengineに保ちます。

+0

なぜBQストリーミングインサートを直接使用しないのですか? insertが必要な場合にはより簡単になります – marcadian

+0

pubsubはより耐久性があるため、BQの部分では挿入が失敗した場合には、そのコードを処理するためのコードを書き込まず、再度pubsubを実行します。 – varun

+0

他の理由は、速度と待ち時間になる可能性があります。 PubSubの書き込みは非同期で高速です。 – varun

1

もう少しBigQueryを読むことをお勧めします。あなたは、それが実際に何であるかという概念を完全に把握しているようには見えません。まずはhereを試してください。 Googleのインフラストラクチャーの力を使って、SQLを使って大規模に拡張可能なデータ分析を考えるその後、そのstreaming API functionalityを見てください。これにより、RESTful APIを介してHTTP POST要求を使用して「イベント」を挿入することができます。

あなたが頭を抱えたら、データをストリームするいくつかのソリューションがあります。BigQueryに直接行くことはできますが、それはいい考えではありません。 varunの答えで言及したように、Pub/Sub & Dataflowを実際に接続することができますが、あなたが必要としているほどあまりにも多いかもしれません。

このため、共通のパターン/解決策は、キューを使用して、そのキューからイベントを非同期で消費し、それらをバッチでBigQueryにプッシュすることです。これは私たちが多くのプロジェクトでそれをやる方法であり、すばらしく働いています。

これを達成するためにGAEを使用する必要はありません。任意のタイプのキューを使用することも、独自のカスタムキューを構築することもできます。たとえば、SQS(イベントはEC2上で実行されているApacheノードから発生します)を使用してAWS上のキューを実行し、イベントをSQSから非同期で消費するアプリケーションを持っています。

同じ効果を達成するためにRedisも使用します。これは本番環境で実行され、スケーラブルで、約50,000イベントをBigQueryに一分間に処理します。私たちのエンジニアの一人がブログ記事を投稿しましたhere

ご覧のとおり、これに対する解決策を作る方法はたくさんあります。しかし、基本的な前提は、あなたの "イベント"を非同期的に処理する何らかのキューを用意し、それらを一括してBigQueryにプッシュして分析を行い、BIツールをプラグインして素敵なグラフを作成することです。また、あなたが選択するソリューションは、特定のユースケースに応じて異なります。あなたのイベントはどこから由来していますか?あなたのスキルセットはどうですか?

希望すると便利です。

関連する問題