0

「 Partitioning by date? 」のようなシャード データのセットがありますが、データがない日があり、そのため日がありません。理想的な解決策は、すべてのテーブル (日付) をオプションにすることです。それは可能ですか?

詳細: select from を実行し、その後に [main.2013-08-01]、[main.2013-08-02]、... すべてのテーブルが存在する必要があります。これらのテーブルのいずれかが存在しない場合、bigquery はクエリを実行しようとすると 500 エラーで応答します。「オプション」という用語を使用することで、特定のテーブルが存在しないことを許可する構文を望んでいますが、クエリは合計で他のテーブルに対して実行されます。私が望んでいることの例: おそらくクエリは SELECT * from ?[main.2013-08-01], ?[main.2013-08-02], ... but [main.2013-08-02 ] 存在しません。ただし、「?」があるためです。テーブルの前のインジケーターはオプションと見なされ、クエリは引き続き正常に実行され、[main.2013-08-01] および実際に存在する他のテーブルからのみ結果が得られます。

私は現在、最初にデータセットのテーブル リストのリクエストを行い、次に実際にクエリを実行して存在を確認したいシャードと比較し、テーブルをマージすることで、この問題を解決しています (たとえば、8 月のすべての日が必要な場合、bigquery は 7/27 を教えてくれます)。存在しないため、FROM ブロックには 7/27 を除くすべてのデータ シャードのリストが含まれます) が、この方法は複雑で、2 つの bigquery ラウンド トリップを伴うため、理想的とは思えません。

4

1 に答える 1