开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

为什么mongodb的json 金额类型 集成到dataworks会变成一个json啊,无论mong

为什么mongodb的json 金额类型 集成到dataworks会变成一个json啊,无论mongodb reader writer配置什么type都一样,都会将源表40.00这种转成{"finite":true,"high":3475653012423180288,"infinite":false,"low":4000,"naN":false,"negative":false}这种750问.png 750问问.png

展开
收起
游客3oewgrzrf6o5c 2022-07-03 15:58:04 489 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    这是因为 MongoDB 中的金额类型是 BSON 格式的,而不是 JSON 格式的。当您使用 MongoDB Reader 将 MongoDB 中的数据导入到 DataWorks 中时,由于 BSON 格式的金额类型无法直接转换为 JSON 格式,因此 MongoDB Reader 会将其转换为 MongoDB Driver 中对应的值对象,即 Decimal128 对象。而 Decimal128 对象在转换为 JSON 格式时,会被转换为一个包含多个属性的 JSON 对象,形如 {"$numberDecimal": "40.00"}。

    为了将 MongoDB 中的金额类型正确转换为 JSON 格式,您可以在数据导入到 DataWorks 后,使用 DataWorks 中的数据转换功能进行转换。具体步骤如下:

    在 DataWorks 中找到需要转换的表,进入表的详情页面。

    单击“数据转换”按钮,进入数据转换页面。

    在数据转换页面中,使用 SQL 语句对数据进行转换。例如,可以使用如下 SQL 语句将 Decimal128 类型的金额转换为 JSON 格式的字符串:

    sql Copy SELECT CAST(price AS VARCHAR) AS price_json FROM my_table;

    
    上述 SQL 语句将查询 `my_table` 表中的 `price` 字段,并将其转换为 JSON 格式的字符串,存储到 `price_json` 字段中。
    
    单击“保存并执行”按钮,等待数据转换完成。
    
    完成数据转换后,您可以在 DataWorks 中导出转换后的数据,并将其保存到指定的文件或存储介质中。
    2023-06-12 18:45:30
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
    MongoDB多数据中心的方案选型之路 立即下载
    饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载