2016-06-22 2 views
1

BigQuery에 이벤트를 추가하려면 ModeAnalytics과 같은 서비스를 사용하여 그래프로 이벤트를 표시하고 싶습니다.BigQuery로 이벤트를 스트리밍하는 방법은 무엇인가요?

BigQuery에 대한 완전한 개념을 잘 모르겠다. 아마도 그것에 대해 잘못된 가정을하고 있을지 모르겠다.하지만 내가 사용하고자하는 것은 (일종의) "이벤트"테이블이 있고 이벤트 이름에 따라 이벤트를 추가하십시오.

이 "새 계정", "사용자 검색"과 같이 될 수

하지만 찾을 수있는 모든 문서는 등 다른 테이블을 CSV하는 JSON 파일에서 많은 양의 데이터의 로딩이었다

"이벤트"테이블에 추가 할 데이터가있는 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 스트리밍 인서트를 직접 사용하지 않는 이유는 무엇입니까? 삽입이 필요한 경우에 더 간단 해 보인다 – 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를 사용할 필요가 없습니다. 모든 유형의 대기열을 사용하거나 사용자 정의 대기열을 간단히 빌드 할 수 있습니다. 예를 들어 AWS에서 SQS (EC2에서 실행되는 Apache 노드에서 발생한 이벤트)를 사용하여 대기열을 실행하고 SQS에서 이벤트를 비동기 적으로 소비하는 애플리케이션을 보유합니다.

또한 Redis를 사용하여 동일한 효과를 얻습니다. 프로덕션 환경에서 실행되며 확장 가능하며 BigQuery에 약 50,000 개의 이벤트를 처리합니다. Google 엔지니어 중 한 명이 블로그 게시물을 작성했습니다 (here).

이렇게 알 수 있듯이 여러 가지 방법으로 해결 방법을 찾을 수 있습니다.그러나 "이벤트"를 비동기 적으로 처리하는 일종의 대기열을 배치하고 BigQuery로 일괄 적으로 푸시하여 분석을 수행하고 BI 도구를 연결하여 멋진 그래프를 만들 수 있습니다. 또한 귀하가 선택한 솔루션은 귀하의 구체적인 사용 사례에 따라 달라집니다. 당신의 사건은 어디에서 발생 했습니까? 당신의 스킬 세트는 어떻습니까?

희망이 도움이됩니다.

관련 문제