最近,我一直在使用摄取时间将带日期后缀的表转换为分区表。但是,在分区表中,我们如何知道某个日期是否不包含数据或表创建失败?
这里有更多详细信息,
daily_table_20200601 (100 rows)
daily_table_20200602 (0 rows)
daily_table_20200603 (10 rows)
在这种情况下,我可以看到表daily_table_20200602
存在,所以我知道我的预定作业成功运行。
daily_table
中,daily_table$20200601 (100 rows)
daily_table$20200602 (0 rows)
daily_table$20200603 (10 rows)
但是我们如何知道表daily_table$20200602
是成功创建还是只是空的?
还有一些有趣的东西。我正在使用API检查分区表是否存在,请参见以下代码,
dataset_ref = client.dataset('dataset_name')
table_ref = dataset_ref.table("daily_table$20210101")
client.get_table(table_ref)
结果显示该表存在。那么我们能够检查某个日期表是否存在?
答案 0 :(得分:1)
每个分区都没有单独的(日期表),因为分区不会创建单独的分区表,所以它类似于关系数据库分区
插入时间分区方法为日期分区(_PARTITIONTIME,_PARTITIONDATE)和小时分区(_PARTITIONTIME)添加了一个伪列,其中将包含插入数据或小时开始的时间戳,并相应地对表进行分区,
此代码:
dataset_ref = client.dataset('dataset_name')
table_ref = dataset_ref.table("daily_table$20210101")
client.get_table(table_ref)
只要分区表存在,此操作就会成功