2016-07-14 4 views
2

Google Datalab에서 시간 분할 BigQuery 테이블의 특정 파티션을 쿼리 결과 대상 테이블로 지원합니까? 예를 들면 :시간이 분할 된 BigQuery 테이블

from gcp import bigquery as bq 
queryString = 'SELECT "a1" AS col1' 
tabNam = 'Feature.test$20141228' 
bq.Query(queryString).execute(table_name=tabNam, table_mode='create') 
+0

안녕, 시암는, Datalab에서 만드는 파티션 테이블에 대해 어떤 파티션 테이블이 아직 존재하지 않는 경우,하지만 내가 직접 (table.Create를 사용하여 파티션 테이블을 만들려)? 그것을하는 방법을 아십니까? 고마워. – HaipengSu

답변

1

내 생각 엔 당신이해야 할 일을하는 유일한 당신이 그것을 가지고있는 것처럼 (접미사로 시간 파티션 테이블의 이름을 제공 할 수 있기 때문에이 기능이 어떻게 든 특별히 Datalab에 의해 지원 될 필요가되지 않는 것입니다 귀하의 질문 - Feature.test $ 20141228). 물론 테이블 (Feature.test)이 timePartitioning 테이블의 속성으로 올바르게 구성되었는지 확인해야합니다.

+1

감사합니다. @Mikhail! @ KS1은 대상 테이블 이름을 문자열로 보내는 대신 사전으로 전송한다는 점을 지적했습니다. 기본적으로 위에서 언급 한 코드 조각에서 은 다음과 같이 바꿉니다. 'tabNam = 'Feature.test $ 20141228'' by : tabNam = {'table_id ':'test $ 20141228 ','dataset_id ':'Feature '}' 이 방법이 유효하다는 것을 확인했습니다. – shyam

0

Google Big Query에서 테이블에 대한 유용한 기능이 있습니다. + (Date)와 같은 이름의 테이블이 여러 개있는 경우 (예 : test20141228, test20141229 ... 사진에 표시된 것처럼 스크롤 버튼이있는 테이블 세트가 있습니다.이 테이블은 정말 좋습니다. 그런 다음 와일드 카드 함수 TABLE_DATE_RANGE ([Feature.test], date1, date2)를 사용하여 testdate1 ~ testdate2 사이의 테이블을 쿼리 할 수 ​​있습니다.이 테이블도 정말 좋습니다.

enter image description here

+0

고맙습니다 @ Haipeng Su! 'TABLE_DATE_RANGE()'를 포기하고 대신 시간 분할 된 테이블을 사용했습니다. 조인이 거의없는 단일 쿼리에서 1000 개의 테이블을 사용할 수있었습니다. – shyam

관련 문제