我正在使用C#根据bigquery api表端点的响应动态构建查询。我正在尝试计算有效的活动用户,但前提是我必须选择具有的每个表.*。我的问题确实很简单,有没有一种方法可以检查BigQuery SQL中是否存在表?
.*
有元表叫__TABLES__和__TABLES_SUMMARY__
__TABLES__
__TABLES_SUMMARY__
您可以运行如下查询:
SELECT size_bytes FROM <dataset>.__TABLES__ WHERE table_id='mytablename'
该__TABLES__查询的一部分可能看起来并不熟悉。__TABLES_SUMMARY__是一个元表,其中包含有关数据集中表的信息。您可以自己使用此元表。例如,查询SELECT * FROM publicdata:samples.__TABLES_SUMMARY__将返回有关publicdata:samples数据集中表的元数据。你也可以SELECT * FROM publicdata:samples.__TABLES__
SELECT * FROM publicdata:samples.__TABLES_SUMMARY__
publicdata:samples
SELECT * FROM publicdata:samples.__TABLES__
可用字段:
__TABLES_SUMMARY__元表的字段(在TABLE_QUERY查询中都可用)包括:
TABLE_QUERY
table_id
creation_time
type
以下字段 不可 用,TABLE_QUERY()因为它们是的成员,__TABLES__但不是的成员__TABLES_SUMMARY__。出于历史考虑,将它们保留在此处,并部分记录该__TABLES__元表:
TABLE_QUERY()
last_modified_time
tabledata.insertAll()
row_count
size_bytes