登录
首页 >  Golang >  Go问答

BigQuery 创建计划查询

来源:stackoverflow

时间:2024-04-19 08:21:32 439浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《BigQuery 创建计划查询》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

我正在尝试在 Go 中创建调度 DELETE 查询,但我在 bigquery 文档中找不到任何示例。

在本文档中,他们提供的唯一示例是 java 和 python。有没有关于如何在 Go 中创建计划查询的示例? https://cloud.google.com/bigquery/docs/scheduling-queries


解决方案


您可以在 go 库中找到示例。基本上这里是使用示例https://github.com/googleapis/google-cloud-go/blob/master/bigquery/datatransfer/apiv1/data_transfer_client_example_test.go#L84

您应该创建一个 transferconfig https://cloud.google.com/bigquery-transfer/docs/reference/datatransfer/rpc/google.cloud.bigquery.datatransfer.v1#google.cloud.bigquery.datatransfer.v1.TransferConfig,它是 gcloud api 的一部分,您也可以从 go 使用它,即使它没有明确记录

以下是实现此目标的方法:

import (
    datatransfer "cloud.google.com/go/bigquery/datatransfer/apiv1"
    "context"
    "fmt"
    structpb "github.com/golang/protobuf/ptypes/struct"
    datatransferpb "google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1"
)


func main() {
    projectID := "projectID"
    datasetID := "DatasetID"

    serviceAccountName := "[email protected]"
    ctx := context.Background()
    c, err := datatransfer.NewClient(ctx)
    if err != nil {
        panic(err)
    }

    transConf := &datatransferpb.TransferConfig{
        Name: "test",
        DisplayName: "TestQuery",
        DataSourceId: "scheduled_query",
        Destination: &datatransferpb.TransferConfig_DestinationDatasetId{
            DestinationDatasetId: datasetID,
        },
        Params: &structpb.Struct{
            Fields: map[string]*structpb.Value {
                "query": &structpb.Value {
                    Kind:  &structpb.Value_StringValue{ "DELETE FROM `datasetID.table` where field='Value' "},
            },
        },
    },
        Schedule: "every 15 minutes",
    }

    _, err = c.CreateTransferConfig(ctx, &datatransferpb.CreateTransferConfigRequest{
        Parent: fmt.Sprintf("projects/%s", projectID),
        TransferConfig: transConf,
        ServiceAccountName: serviceAccountName,
    })

    if err != nil {
        panic(err)
    }
}

好了,本文到此结束,带大家了解了《BigQuery 创建计划查询》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>