2017-01-23 9 views
0

BigQueryのパーティションテーブルを読み込んでいて、ベストプラクティスのセクションを理解できませんでした。私はこのdocumentation linkBigQueryでパーティションテーブルをクエリする方法

に基づいて、次の

#standardSQL 
SELECT * 
FROM `myproject.affiliate.log_20170101` 
WHERE _PARTITIONTIME BETWEEN TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 * 24 HOUR),DAY) 
AND TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(),DAY); 

を実行しようとしたしかし、私はこのエラーを取得し、

Error: Unrecognized name: _PARTITION_TIME; 

は私が間違って何をしているのですか?ワイルドカードクエリとの違いは?

答えて

2

私は間違っていますか?

ラインの下から

- 私はあなたが実際に分割されたテーブルを使用していないと仮定していますが、むしろシャードはテーブル

FROM `myproject.affiliate.log_20170101` 

BigQueryの標準SQLでシャードのテーブルに対処するには、_TABLE_SUFFIX

を使用する必要があります

これはワイルドカードクエリとどのように違うのですか?標準SQLで

シャードテーブルtablename_YYYYMMDDとして命名毎日テーブルのセットであるとレガシーSQLでTable wildcard functionsの使用または_TABLE_SUFFIXで問い合わせることができ
Partitioned tableは内部で私は一日

+0

で仕切らトーンテーブルですあなたはそれがどれくらい早く気づいたのか驚いた。はい、私がパーティション化されていると思ったテーブルは、断片化したテーブルだけでした。パーティション化されたテーブルとシャードされたテーブルのパフォーマンスとユーザビリティがどう違うのだろうかと私は思います。 – dorachan2010

+0

私の個人的な提案は、パーティション化されたテーブルと一緒に行くことです。一度には、断片化されたテーブルしか利用できなかったので、選択肢はありませんでした。しかし、今は分割された方法があります。私の答えで提供されているリンクの詳細を参照してください –

+0

さて、私は記事を読みましたが、パフォーマンスやユーザビリティがどのように違うかについて明確な例は示されていませんでした。 – dorachan2010

関連する問題