本文为您介绍如何利用DataWorks数据集成将JSON数据从OSS迁移到MaxCompute,并使用MaxCompute内置字符串函数GET_JSON_OBJECT提取JSON信息。

数据上传OSS

将您的JSON文件重命名后缀为TXT文件,并上传到OSS。本文中使用的JSON文件示例如下。


{"store": {"book": [{"category": "reference","author": "Nigel Rees","title": "Sayings of the Century","price": 8.95},{"category": "fiction","author": "Evelyn Waugh","title": "Sword of Honour","price": 12.99},{"category": "fiction","author": "J. R. R. Tolkien","title": "The Lord of the Rings","isbn": "0-395-19395-8","price": 22.99}],"bicycle": {"color": "red","price": 19.95}},"expensive": 10
}

将applog.txt文件上传到OSS,本文中OSS Bucket位于华东2区。

使用DataWorks导入数据到MaxCompute

  1. 新增OSS数据源

进入DataWorks数据集成控制台,新增OSS类型数据源。

具体参数如下所示,测试数据源连通性通过即可点击完成。Endpoint地址请参见OSS各区域的外网、内网地址,本例中为http://oss-cn-shanghai.aliyun... http://oss-cn-shanghai-internal.aliyuncs.com(由于本文中OSS和DataWorks项目处于同一个region中,本文选用后者,通过内网连接)。

  1. 新建数据同步任务

在DataWorks上新建数据同步类型节点。

新建的同时,在DataWorks新建一个建表任务,用于存放JSON数据,本例中新建表名为mqdata。

表参数可以通过图形化界面完成。本例中mqdata表仅有一列,类型为string,列名为MQ data。

完成上述新建后,您可以在图形化界面配置数据同步任务参数,如下图所示。选择目标数据源名称为odps_first,选择目标表为刚建立的mqdata。数据来源类型为OSS,Object前缀可填写文件路径及名称。列分隔符使用TXT文件中不存在的字符即可,本文中使用 ^(对于OSS中的TXT格式数据源,Dataworks支持多字符分隔符,所以您可以使用例如 %&%#^$$^%这样很难出现的字符作为列分隔符,保证分割为一列)。

映射方式选择默认的同行映射即可。

点击左上方的切换脚本按钮,切换为脚本模式。修改fileFormat参数为: "fileFormat":"binary"。该步骤可以保证OSS中的JSON文件同步到MaxCompute之后存在同一行数据中,即为一个字段。其他参数保持不变,脚本模式代码示例如下。


{"type": "job","steps": [{"stepType": "oss","parameter": {"fieldDelimiterOrigin": "^","nullFormat": "","compress": "","datasource": "OSS_userlog","column": [{"name": 0,"type": "string","index": 0}],"skipHeader": "false","encoding": "UTF-8","fieldDelimiter": "^","fileFormat": "binary","object": ["applog.txt"]},"name": "Reader","category": "reader"},{"stepType": "odps","parameter": {"partition": "","isCompress": false,"truncate": true,"datasource": "odps_first","column": ["mqdata"],"emptyAsNull": false,"table": "mqdata"},"name": "Writer","category": "writer"}],"version": "2.0","order": {"hops": [{"from": "Reader","to": "Writer"}]},"setting": {"errorLimit": {"record": ""},"speed": {"concurrent": 2,"throttle": false,"dmu": 1}}
}

完成上述配置后,点击运行接即可。运行成功日志示例如下所示。

获取JSON字段信息

在您的业务流程中新建一个ODPS SQL节点。
 

您可以首先输入 SELECT*from mqdata;语句,查看当前mqdata表中数据。当然这一步及后续步骤,您也可以直接在MaxCompute客户端中输入命令运行。

确认导入表中的数据结果无误后,您可以使用MaxCompute内建字符串函数GET_JSON_OBJECT获取您想要的JSON数据。本例中使用 SELECT GET_JSON_OBJECT(mqdata.MQdata,'$.expensive') FROM mqdata;获取JSON文件中的 expensive值。如下图所示,可以看到已成功获取数据。



本文作者:付帅

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

JSON数据从OSS迁移到MaxCompute最佳实践相关推荐

  1. JSON数据从OSS迁移到MaxCompute最佳实践 1

    本文为您介绍如何利用DataWorks数据集成将JSON数据从OSS迁移到MaxCompute,并使用MaxCompute内置字符串函数GET_JSON_OBJECT提取JSON信息. 数据上传OSS ...

  2. JSON数据从MongoDB迁移到MaxCompute最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 本文为您介绍如何利用DataWorks数据集成直接从MongoDB提取JSON字段到MaxCompute. 数据及账号 ...

  3. 【大数据新手上路】“零基础”系列课程--MySQL 数据整库迁移到 MaxCompute

    随着公司业务的增多,云数据库 RDS 下的 MySQL 数据库的表越来越多,想要把它全部迁移到 MaxCompute 中进行计算分析,但又愁要配置太多次同步任务.如何能将大量的数据表一次性上传到 Ma ...

  4. 万元大奖邀您参与阿里云数加 MaxCompute最佳实践征文大赛

    DT时代,越来越多的企业应用数据步入云端.与传统Hadoop相比,阿里云数加MaxCompute(原名ODPS)向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据 ...

  5. 玩转ECS第8讲 | 服务器迁移中心SMC最佳实践及新特性介绍

    简介:本次分享由阿里云技术专家白辉万(百宝)为大家介绍免费的服务器迁移上云最佳实践方案和新功能特性,包括一键迁云.自动定期同步.一键验证.本次分享内容将帮助企业上云客户越过高高的服务器迁移门槛,快速体 ...

  6. oracle到kdb迁移,DB2迁移到K-DB最佳实践

    [IT168 技术]本文主要讲解从DB2 v9.7 PHSDB库迁移到K-DB11G最佳实践,迁移数据库名为PHSDB,数据库架构为单机.首先在目标主机上安装K-DB11g软件,并创建PHSDB库,具 ...

  7. 《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法

    写在前面:我是「云祁」,一枚热爱技术.会写诗的大数据开发猿.昵称来源于王安石诗中一句 [ 云之祁祁,或雨于渊 ] ,甚是喜欢. 写博客一方面是对自己学习的一点点总结及记录,另一方面则是希望能够帮助更多 ...

  8. 【阿里云】企业自建 Hadoop 迁移至 MaxCompute 最佳实践学习

    文章目录 一.前言 二.适用场景 三.技术架构 四.方案优势 五.自建Hadoop集群规划 5.1 Hadoop集群安装规划 5.2 创建 VPC 网络 5.3 批量创建 ECS 实例 5.4 初始化 ...

  9. 一部分 数据 迁移_11项最佳实践,每次数据中心迁移都必不可少

    随着企业业务和应用的发展,现有基础架构已经无法保障时,数据中心迁移无法避免,企业可能需要迁移来增加容量或推出新功能和服务. 基础架构要求可能会随时间变化,并且可能会考虑使用托管服务提供商或云服务的选项 ...

最新文章

  1. JSP page指令
  2. 《云计算揭秘企业实施云计算的核心问题》——导读
  3. 切点、切面:@Aspect、@PointCut相关的个人总结
  4. vs中c#的项目配置,平台配置
  5. Python数据类型-----列表
  6. PCL点云CSV转PCD文件
  7. 简单理解操作系统中的PV操作
  8. Java 数组与容器之间的转化 实现数组动态赋值
  9. 老男孩linux——36期学员
  10. 国内外cms网站大全
  11. 云端软件关闭的原因是什么?
  12. Python url的编码转换
  13. 【老生谈算法】Matlab中插值函数汇总和使用说明——插值函数
  14. JavaWeb - 小米商城:商品详情展示
  15. 长相一般的普通程序员怎么找到喜欢程序员的妹子做女友?
  16. scratch小猫钓鱼 电子学会图形化编程scratch等级考试四级真题和答案解析2021-9
  17. 百度站长平台"添加站点"提示"您无权访问该页面,点击确定按钮返回首页?"
  18. hadoop 清理日志文件
  19. Fzu-2190 非提的救赎 (单调栈)
  20. 凯撒密码解密加密(C语言)

热门文章

  1. lucene升级至5.x版本出现 :IllegalStateException: IllegalStateException: unexpected docvalues type NONE...
  2. Django Channels 入门指南
  3. 解决ntfs格式的移动硬盘mount到Linux下时变成只读文件系统的问题
  4. VS2010 使用GDI+创建图片水印的MFC程序
  5. vs2005中关于masterpage,Theme,skin的一点总结
  6. navigator对象介绍
  7. iQOO3Android11稳定版,vivo安卓11来了iQOO3 NEX3S尝鲜Androi11测试版!
  8. 事物的开始和结束命令分别是什么_AutoCAD小秘密065:LOFT命令,创建天圆地方
  9. mysql视图子查询_mysql创建视图不能包涵子查询的解决办法。View's SELECT contains a subquery in the FROM clause...
  10. 带你从源码了解SpringBoot启动流程