BigQuery时间分区Python判断逻辑疑问:ingestion time分区时条件是否互斥?
BigQuery分区表判断逻辑疑问解答
本人为BigQuery新手,正在编写Python函数以获取表的分区信息,代码片段如下:
if bqtable.time_partitioning: print(table.time_partitioning.field) elif bqtable.partitioning_type == 'DAY': print('ingestion time')现存在疑问:上述两个条件判断是否互斥?当表采用ingestion time分区时,第一个条件是否会成立?
解答
这两个条件是互斥的,具体说明:
- 当表是字段分区时,
bqtable.time_partitioning会包含有效对象(里面有field等属性),第一个条件成立,会执行打印分区字段的逻辑。 - 当表采用**ingestion time分区(按日)**时,
bqtable.time_partitioning的值为None,不会触发第一个条件;但此时bqtable.partitioning_type会被设置为'DAY',所以会走到第二个elif分支,打印ingestion time。
也就是说,ingestion time分区的表不会触发第一个条件,你的代码里的分支逻辑是能正确区分两种分区类型的。
内容的提问来源于stack exchange,提问作者CodingTheVerse
相关产品推荐
相关产品推荐

