繁体   English   中英

BigQuery检查表是否存在

[英]BigQuery check if table exists or not

我正在使用C#根据bigquery api表端点的响应动态构造查询。 我正在尝试计算有效的用户,但只有当我选择每个表格时才会使用.* 我的问题很简单,有没有办法检查BigQuery SQL中是否存在表格?

有一些名为__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__

可用字段:

__TABLES_SUMMARY__元表的字段(在TABLE_QUERY查询中都可用)包括:

  • table_id :表的名称。
  • creation_timecreation_time时的时间,自1970年1月1日UTC以来的毫秒数。 这与表上的creation_time字段相同。
  • type :是视图(2)还是常规表(1)。

TABLE_QUERY()没有以下字段,因为它们是__TABLES__但不是__TABLES_SUMMARY__成员。 他们留在这里是为了历史的兴趣,并部分记录__TABLES__ metatable:

  • last_modified_time :表格更新后的时间(自1970年1月1日UTC以来的毫秒数)(元数据或表格内容)。 请注意,如果使用tabledata.insertAll()将记录流式传输到表中,则可能需要几分钟的时间。
  • row_count :表中的行数。
  • size_bytes :表的总大小(以字节为单位)。
#standardSQL
SELECT COUNT(1) AS cnt
FROM `project.dataset.__TABLES_SUMMARY__`
WHERE table_id = 'mytable'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM