事前定義されたクエリ/ビューを除いて、Google の BigQuery ダッシュボードに似たものを作成しようとしています。私が直面している問題は、データのページネーションです。
tabledata エンドポイントは、開始インデックスを指定するか、ページ トークンを使用できるという点でページネーションをサポートしているため、次のようなことができます。
query_reply = table_data_job.list(projectId=settings.PROJECT_ID,
datasetId=settings.DATASET_ID,
tableId=table,
startIndex=offset,
maxResults=page_size).execute()
これに関する問題は、特定のクエリを実行したい (または、少なくともテーブル データの結果を並べ替えたい) ことです。
query_data = {'query': 'SELECT * FROM my_dataset.foo_table LIMIT %s' % page_size}
query_reply = job_collection.query(projectId=settings.PROJECT_ID,
body=query_data).execute()
私の知る限り、上記のコードでオフセットを行う方法はありません。これは単に BigQuery が適していないことですか? 別の方法は、メモリ内でページ付けを行い、より小さな結果セットで作業することだと思いますか?