【问题标题】:What is the equivalent Data type for Numeric in apache.beam.sdk.schemas.Schema.FieldTypeapache.beam.sdk.schemas.Schema.FieldType 中数值的等效数据类型是什么
【发布时间】:2019-06-19 06:43:31
【问题描述】:

尝试使用 BeamSQL 将数据写入 BigQuery 表。要写入数据,我们需要该数据的模式。使用 org.apache.beam.sdk.schemas 来定义数据收集的模式。我们在该数据集合中有数字数据类型列。想知道,org.apache.beam.sdk.schemas.Schema.FieldType 类中 Numeric 的等效数据类型是什么。请有人帮我使用数值数据类型的等效架构。

【问题讨论】:

    标签: java google-cloud-dataflow apache-beam beam-sql


    【解决方案1】:

    BeamSQL 的 Decimal 可以呈现 BigQuery 的 NUMERIC。 BeamSQL 的 Decimal 由 Java 的 BigDecimal 实现,它本身支持根据 Java doc 的任意精度。它的缺点是性能,因为 BigDecimal 不是 Java 原语(与 FLOAT 或 DOUBLE 相比,编码和解码会很昂贵)。

    【讨论】:

    • 它有效!谢谢你。 BigDecimal bigDecimal = new BigDecimal(inputValue.toString());最终静态架构示例 = Schema.builder().addInt32Field("AUDIT_KEY").addDecimalField("EXCHANGE_RATE").build();
    【解决方案2】:

    DECIMAL 可能是您正在寻找的。​​p>

    澄清一下,当您说 Numeric 时,您是指 BigQuery 数据类型 (https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types) 定义的 NUMERIC 类型吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2019-06-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 2010-10-13
      相关资源
      最近更新 更多