【问题标题】:"no root units" error in Dataflow, from PubSub to Bigquery in Golang数据流中的“无根单元”错误,从 Golang 中的 PubSub 到 Bigquery
【发布时间】:2022-11-01 22:18:26
【问题描述】:

我正在尝试从 PubSub 读取消息,然后写入 DataFlow 中的 BigQuery 表。但是,我使用直接运行器遇到了“无根单元”错误。

这是我的代码;

package main

import (
    "context"
    "encoding/json"
    "flag"
    "fmt"

    "github.com/apache/beam/sdks/v2/go/pkg/beam/io/bigqueryio"
    "github.com/apache/beam/sdks/v2/go/pkg/beam/x/debug"

    "github.com/apache/beam/sdks/v2/go/pkg/beam"
    "github.com/apache/beam/sdks/v2/go/pkg/beam/io/pubsubio"
    "github.com/apache/beam/sdks/v2/go/pkg/beam/log"
    "github.com/apache/beam/sdks/v2/go/pkg/beam/x/beamx"
)


type DummyBody struct {
        TaskId string `json:"id" bigquery:"id"`
    }


func buildPipeline(s beam.Scope) {
    rawDummyBodies := pubsubio.Read(s, "project", "topic", &pubsubio.ReadOptions{Subscription: "sub.ID"})

    dummyBodies := beam.ParDo(s, func(ctx context.Context, data []byte) (DummyBody, error) {
        var body DummyBody
        if err := json.Unmarshal(data, &body); err != nil {
            log.Error(ctx, err)
            fmt.Println("Error")
            return body, err
        }
        fmt.Println("No Error")
        return body, nil
    }, rawDummyBodies)

    debug.Printf(s, "Task : %#v", dummyBodies)

    bigqueryio.Write(s, "project", "table", dummyBodies)
}

func main() {
    flag.Parse()
    beam.Init()

    p, s := beam.NewPipelineWithRoot()
    buildPipeline(s)

    ctx := context.Background()
    if err := beamx.Run(ctx, p); err != nil {
        log.Exitf(ctx, "Failed to execute pipeline: %v", err)
    }
}

管道开始使用直接运行器执行,但由于没有根单元而失败。

2022/11/01 14:29:55 执行管道失败:翻译失败 造成的: 没有根单位 退出状态 1

【问题讨论】:

    标签: go google-bigquery google-cloud-dataflow google-cloud-pubsub


    【解决方案1】:

    pubsubio only works on Dataflow Runner 的当前实现。

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-20
      • 2018-10-13
      • 2019-03-25
      • 1970-01-01
      相关资源
      最近更新 更多