2014-11-19 2 views
0

모듈로드 테스트 중에 bigquery 삽입 호출에 시간 (3-4 초)이 걸리는 것으로 나타났습니다. 이게 괜찮은지 확실하지 않습니다. 우리는 자바 biguqery 클라이언트 libarary를 사용하고 평균적으로 API 호출 당 500 레코드를 푸시합니다. 우리는 초당 100 만 건의 트래픽을 우리 모듈에 보낼 것으로 기대하고 있습니다. 그래서 bigquery 삽입은 이러한 트래픽을 처리하기위한 병목 현상입니다. 현재 데이터를 푸는 데 몇 시간이 걸립니다. 코드 또는 시나리오 또는 기타 관련하여 더 많은 정보가 필요한 경우 알려주십시오.Bigquery 스트리밍 인서트 가져 오기

감사 판 카지

답변

3

스트리밍 제한 페이로드 크기를 가지고 있기 때문에, 그것은 페이로드가 우리 모두에게 같은 방법으로 제한되는 한, 시간에 대해 이야기하는 것이 더 쉽습니다 Quota policy를 볼 수 있지만 너무 다른 부작용을 언급 할 것이다 .

우리는 각 스트리밍 요청에 대해 1200-2500ms 사이의 값을 측정하며 차트에서 볼 수 있듯이 지난 한 달 동안 일관되었습니다.

enter image description here

우리는 여러 가지 부작용을 볼 수 있지만 :

요청이 무작위로 유형 '백엔드 오류'실패
  • 요청이 무작위로 유형 '연결 오류'
  • 요청에 실패
  • 'timeout'유형으로 무작위로 실패합니다 (일부 행만 실패하고 전체 페이로드가 아니므로 여기에서 조심하십시오)
  • 일부 다른 오류 메시지 현자는 설명 적이 지 않으며, 너무 막연하여 도움을받지 못하고 다시 시도합니다.
  • 우리는 매일 수백 건의 이러한 실패를 볼 수 있으므로 클라우드 상태와 관련이 없으며 거의 ​​일정합니다.

유료 Google Enterprise 지원팀에 사례가 공개되었지만 해결되지 않았습니다. 이것에 대한 권장 옵션은 재 시도가있는 지수 - 백 오프이며, 그렇게하도록 지시받은 지원도 포함됩니다. 어떤 개인적으로 나를 행복하게하지 않습니다.


it does not scale을 의미한다 시간이 소요 및 확장하지 않을 경우 당신이 선택한 접근 방식. async processes으로 접근 방식을 재고해야합니다. 빨리 끝내려면 여러 작업자를 병렬로 실행해야하며 스트리밍 성능은 동일합니다. 10 명의 근로자가 병행한다면 시간이 10 배가 될 것입니다.

백그라운드에서 처리 IO 바인딩 또는 CPU 바인딩 작업은 이제 대부분의 웹 응용 프로그램에서 일반적으로 사용됩니다. Beanstalkd과 같은 메시징 시스템을 기반으로하는 백그라운드 작업을 구축하는 데 도움이되는 많은 소프트웨어가 있습니다.

기본적으로 닫힌 네트워크에서 삽입 작업을 배포하고 우선 순위를 지정하고 작업을 소비 (실행)해야했습니다. Beanstalkd가 제공하는 것과 정확히 같습니다.

Beanstalkd는 작업 유형에 해당하는 튜브에서 작업을 구성 할 수있는 가능성을 제공합니다.

튜브에 작업을 넣을 수있는 API/제작자가 필요합니다. 행의 json 표현을 가정 해 봅시다. 이것은 유스 케이스의 킬러 기능이었습니다. 따라서 행을 가져 와서 튜브에 배치하는 API를 사용하면 몇 밀리 초 밖에 걸리지 않으므로 빠른 응답 시간을 얻을 수 있습니다.

다른 부분에서는 이제 일부 튜브에 많은 작업이 있습니다. 당신은 요원이 필요합니다. 상담원/고객이 작업을 예약 할 수 있습니다.

작업 관리 및 재시도에도 도움이됩니다. 작업이 성공적으로 처리되면 소비자가 작업을 튜브에서 삭제할 수 있습니다. 실패의 경우, 소비자는 직장을 묻을 수 있습니다. 이 작업은 튜브로 다시 밀리지는 않지만 나중에 검사 할 수 있습니다.

소비자는 작업을 릴리스 할 수 있습니다. Beanstalkd는이 작업을 튜브에 밀어 넣고 다른 클라이언트에서 사용할 수 있도록합니다.

Beanstalkd 클라이언트는 대부분의 공용 언어에서 찾을 수 있으며 web interface은 디버깅에 유용 할 수 있습니다.

+0

감사합니다 펜티엄, 우리는 다른 메시징 프레임 워크 kafka를 사용하고 제안한 것과 동일한 작업을 수행하고 있습니다. 근로자 수의 증가는 분명히 우리가 이미 생각한 해결책입니다. 이 앱이 스트리밍 API에서 얻을 수있는 최대 API 성능인지 여부는 Google의 대표자로부터 확인하고 싶습니다. – pankajmi

관련 문제