column_name | is_nullable | data_type OrderId | YES | STRING items | NO | ARRAY<STRUCT<articleId STRING, quantity FLOAT64INT64>>

问题描述 投票:1回答:1
“ OrderId”应该是键。

((2)

现在,我想将ARRAY / STRUCT记录标准化为一个单独的表。为此,我使用了“ Wrangler”变换。

NOTE

:这是Data Fusion Studio的“传输”部分中的“牧马人”!尝试通过汉堡包菜单打开“牧马人”并选择BQ源表时,提示:

不支持BigQuery类型STRUCT。源表的输出链接到牧马人的输入。

在牧马人中我定义了...

输入字段名称:*

前提:假

指令/配方:保留combiOrderId,items,articleId,数量

    输出模式(名称|类型|空):-(根据源表,下面附有JSON) combiOrderId | string | yes items | array | no record [ {articleId | string | yes}, {quantity | float | yes} ]
  • Wrangler parameters screen
  • ((3) BQ接收器表将Wrangler输出作为输入架构,我将最终的架构定义为(Name | Type | Null) combiOrderId | string | yes articleId | string | yes quantity | float | yes
  • 现在,在运行管道时(预览模式),将记录以下错误消息:

    问题转换为输出记录。原因:无法解码数组'项目'

    (下面有完整的消息)

    任何提示或其他解决方案将非常受欢迎:-)

    谢谢。

    牧马人的输出模式的JSON:

    [ { "name": "etlSchemaBody", "schema": { "type": "record", "name": "etlSchemaBody", "fields": [ { "name": "combiOrderId", "type": [ "string", "null" ] }, { "name": "items", "type": { "type": "array", "items": { "type": "record", "name": "a6adafef5943d4757b2fad43a10732952", "fields": [ { "name": "articleId", "type": [ "string", "null" ] }, { "name": "quantity", "type": [ "float", "null" ] } ] } } } ] } } ]

  • normalization google-cloud-data-fusion
    1个回答
    0
    投票
    关于调试错误:检查错误可能最简单的方法是从牧马人导航。您可以按照以下步骤操作,

    转到牧马人连接:/ cdap / ns /默认/连接

    单击BQ源(或创建BigQuery连接)导航到BQ表并单击它。

      这将带您到牧马人工作区(选项卡式视图)
    1. 从那里您可以应用所有转换并单击“创建管道”
    2. 此后,您应该看到源和牧马人变换已经配置好。然后,您可以添加一个接收器并运行预览以测试是否wrk
  • 要解决您的其他问题:
  • 牧马人仅在BQ源中支持数组类型。它不支持从BigQuery读取STRUCT类型。我的猜测就是那就是为什么您看到此问题。 issue.cask.co/browse/CDAP-15665
    © www.soinside.com 2019 - 2024. All rights reserved.