【问题标题】:How to get names of scheduled queries in bigquery如何在 bigquery 中获取计划查询的名称
【发布时间】:2022-11-23 17:22:13
【问题描述】:

使用 python 客户端连接 bigquery,我们如何获取该项目中存在的所有计划查询的名称?

我试着跟进这个链接 - https://cloud.google.com/bigquery/docs/reference/datatransfer/libraries

但是没有关于预定查询名称的信息。

【问题讨论】:

    标签: python api google-bigquery google-cloud-functions bigdata


    【解决方案1】:

    使用 Python BigQuery Client 列出项目的所有预定查询:

    def get_scheduled_queries_configs():
        from google.cloud import bigquery_datatransfer
    
        transfer_client = bigquery_datatransfer.DataTransferServiceClient()
    
        project_id = "{project_id}"
        parent = transfer_client.common_location_path(project=project_id, location='EU')
    
        request = bigquery_datatransfer.ListTransferConfigsRequest(
            parent=parent,
            data_source_ids=['scheduled_query']
        )
    
        configs = transfer_client.list_transfer_configs(request=request)
        print("Got the following configs:")
        for config in configs:
            print(f"	ID: {config.name}, Schedule: {config.schedule}")
            print(f"	Display name: {config.display_name}")
    
            config_name = config.name
            config_schedule = config.schedule
            config_display_name = config.display_name
    
        return configs
    
    
    if __name__ == '__main__':
        scheduled_queries_configs = get_scheduled_queries_configs()
    

    一些解释:

    • 此代码仅针对通过 ListTransferConfigsRequest 对象的计划查询检索 transfer configs。在此示例中,请求采用包含项目和位置 EU 的父参数。该请求还采用 data_source_ids 参数和 scheduled_query
    • 位置很重要,因为如果您的计划查询在美国而您在欧盟执行请求,结果将为空
    • config.display_name 允许检索计划查询的名称

    【讨论】:

    • 为什么方案中使用了两个版本的bigquery_datatransfer?
    • 我改变了它,现在我到处都使用相同的导入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 2020-06-11
    • 1970-01-01
    • 2023-02-02
    • 2021-09-30
    • 2011-11-13
    • 1970-01-01
    相关资源
    最近更新 更多