10TB海量JSON数据从OSS迁移至MaxCompute

news2025/1/22 19:48:36

前提条件

  • 开通MaxCompute。

  • 在DataWorks上完成创建业务流程,本例使用DataWorks简单模式。详情请参见创建业务流程。

  • 将JSON文件重命名为后缀为.txt的文件,并上传至OSS。本文中OSS Bucket地域为华东2(上海)。示例文件如下。

    {
        "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
    }

将JSON数据从OSS迁移至MaxCompute

  1. 新增OSS数据源。详情请参见配置OSS数据源。

  2. 在DataWorks上新建数据表,用于存储迁移的JSON数据。

    1. 登录DataWorks控制台,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

    2. 数据开发页面,鼠标悬停至image..png图标,单击新建表 > 

    3. 新建表对话框中,选择相应的路径,输入名称,单击新建

      说明:如果绑定多个实例,则需要选择MaxCompute引擎实例。

    4. 在表的编辑页面,单击DDL

    5. DDL模式对话框,输入如下建表语句,单击生成表结构

      create table mqdata (mq_data string);
    6. 确认操作对话框中,单击确认

    7. 生成表结构后,在基本属性模块输入表的中文名,并分别单击提交到开发环境提交到生产环境

      说明:如果您使用的是简单模式的工作空间,仅单击提交到生产环境即可。

  3. 新建离线同步节点。

    1. 进入数据开发页面,右键单击指定业务流程,选择新建节点 > 数据集成 > 离线同步

    2. 新建节点对话框中,输入节点名称,并单击确认

    3. 在顶部菜单栏上,单击转化脚本图标

    4. 在脚本模式下,单击顶部菜单栏上的**图标

    5. 导入模板对话框中选择来源类型数据源目标类型数据源,并单击确定。主要思路是一个字段存入整个json数据。

修改JSON代码后,单击运行按钮

配置代码如下。

{
    "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
        }
    }
}

结果验证

新建ODPS SQL节点。

  1. 右键单击业务流程,选择新建节点 > MaxCompute ODPS SQL

  2. 新建函数对话框中,输入函数名称,单击新建

  3. 在ODPS SQL节点编辑页面输入如下语句。

    --查询表mq_data数据。
    SELECT * from mqdata;
    --获取JSON文件中的EXPENSIVE值。
    SELECT GET_JSON_OBJECT(mqdata.MQdata,'$.expensive') FROM mqdata;
  4. 单击**图标运行代码

  5. 您可以在运行日志查看运行结果。费用不低,我的项目是对外提供数据检索服务,这个消耗速度扛不住啊。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1347488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【后端】Docker学习笔记

文章目录 Docker一、Docker安装(Linux)二、Docker概念三、Docker常用命令四、数据卷五、自定义镜像六、网络七、DockerCompose Docker Docker是一个开源平台,主要基于Go语言构建,它使开发者能够将应用程序及其依赖项打包到一个轻…

Linux:apache优化(1)—— 长链接/保持连接

系统:CentOS 7.9 apache版本为:2.4.25 需要使用源码包进行安装才能够使用这些扩展模块 在使用这些扩展模块前要先下载zlib-devel 安装--enable-deflate选项需要的网页压缩传输的软件包 yum -y install zlib-devel 在配置编译安装时需要使用扩展配置 ./config…

【瞎折腾/3D】无父物体下物体的旋转与移动

目录 说在前面移动World SpaceLocal Space 旋转World SpaceLocal Space 代码 说在前面 测试环境:Microsoft Edge 120.0.2210.91three.js版本:0.160.0其他:本篇文章中只探讨了无父对象下的移动与旋转,有父对象的情况将在下篇文章中…

2024-01-01 事业-代号s-科特勒《营销管理》-分析

摘要: 2024-01-01 事业-代号s-科特勒《营销管理》-分析 科特勒《营销管理》-分析 营销管理 - 思维导图 01 理解营销管理 这本书不仅从概念出发介绍了营销管理的定义、职能和计划,还拆解了每一个管理环节策划的具体实施方法。通过下面这张思维导图,我们…

分布式数据库事务故障恢复的原理与实践

关系数据库中的事务故障恢复并不是一个新问题,自70年代关系数据库诞生之后就一直伴随着数据库技术的发展,并且在分布式数据库的场景下又遇到了一些新的问题。本文将会就事务故障恢复这个问题,分别讲述单机数据库、分布式数据库中遇到的问题和…

深度学习 | 编码器-解码器网络、seq2seq模型、束搜索算法

我们知道传统RNN输入和输出数据是等长的,这显然极大限制了他的应用范围。 前面几节我们讲到的循环神经网络的各种变体基本上都在解决一个序列的问题。还有一大类问题涉及到的是两个序列间转换。它是自然语言处理中的一个重要领域,包括机器翻译、语音识别…

go slice源码探索(切片、copy、扩容)和go编译源码分析

文章目录 概要一、数据结构二、初始化2.1、字面量2.2、下标截取2.2.1、截取原理 2.3、make关键字2.3.1、编译时 三、复制3.1、copy源码 四、扩容4.1、append源码 五:切片使用注意事项六:参考 概要 Go语言的切片(slice)是对数组的…

FA对接FC流程

2、FA进行对接 (1)首先安装好AD域控服务器DHCPDNS(注意,不要忘记了做DNS正反向解析,就是把已经安装了ITA的主机做解析),在里面创建域用户 (2)安装ITA和VAG/VLB&#xf…

Redis7.2.3(Windows版本)

1、解压   2、设置密码 (1) 右击编辑redis.conf文件:  (2) 设置密码。  3、测试密码是否添加成功  如上图所示,即为成功。 4、设置…

Redis(Linux版本7.2.3)

1、停止Redis服务器 [roottssvr1-c1 sysconfig]# ps -ef | grep redis root 322 1 0 10月30 ? 02:58:53 ./bin/redis-server 0.0.0.0:6379 root 32664 12498 0 14:45 pts/0 00:00:00 grep --colorauto redis [roottssvr1-c1 sysconfig]# [roottssvr…

在Mac上恢复SD卡数据的 6 个有效应用程序

慌!SD卡里的照片和视频不小心删了,Mac设备上还恢复不了数据! 遇到这种情况,你需要的是一款可靠的Mac适用的SD卡恢复软件。我们为你准备了一份最佳的SD卡恢复软件列表,并且还有详细的评论。另外,我们还会给…

vue中常见的指令

简单介绍一下常见的vue中用到的指令 v-on 指定当前的事件&#xff0c;语法糖为&#xff0c;如例子所示&#xff0c;指定按钮的事件为addCounter&#xff0c;点击会使变量counter 1 <!DOCTYPE html> <html><head><meta charset"utf-8" />…

CSS2_基础学习

CSS2_基础学习 一、css基础知识二、css选择器2.0 选择器的优先级2.1 CSS基本选择器2.2 复合选择器2.2.1. 交集选择器2.2.2. 并集选择器2.2.3. 后代选择器&#xff08;加空格&#xff09;2.2.4. 子代选择器2.2.5. 兄弟选择器2.2.6. 属性选择器2.2.7. 伪类选择器2.2.8. 伪元素选择…

zabbix通过自动发现-配置监控项、触发器(小白教程)

自动发现配置参考链接&#xff08;不小白&#xff0c;不友好&#xff09; zabbix-get介绍 1配置 zabbix server&#xff1a;版本7&#xff08;不影响&#xff09;,IP地址&#xff1a;192.168.0.60zabbix agent&#xff1a;版本agent1&#xff08;不影响&#xff09;&#xff…

基于Ubuntu环境Git服务器搭建及使用

基于Ubuntu环境Git服务器搭建及使用 Chapter1 搭建本地git服务器及详细操作步骤1.搭建本地git服务器1.1 环境1.2 服务端配置1.3 创建git专属用户1.4 创建git仓库1.5 配置免密登录基础 2.客户端拉取推送代码2.1客户端创建ssh公钥 2.2 免密配置3.仓库使用&#xff08;拉取及推送代…

如祺出行与腾讯云成立联合创新实验室,聚焦汽车网联及数据安全

12月28日&#xff0c;如祺出行与腾讯云宣布成立“祺盾网络数据安全联合创新实验室”&#xff0c;并签署合作协议。基于联合实验室&#xff0c;双方将共同开展网络数据安全等前沿技术在出行科技、汽车工业等领域的应用研究和实践探索&#xff0c;携手打造行业领先的智能网联汽车…

第九课:机器学习与人工智能、计算机视觉、自然语言处理 NLP及机器人

第九课&#xff1a;机器学习与人工智能、计算机视觉、自然语言处理 NLP及机器人 第三十四章&#xff1a;机器学习与人工智能1、分类 Classification2、做分类的算法 分类器 Classifier3、用于分类的值是特征 Feature4、特征值种类叫做标记数据 Labeled data5、决策边界 Decisio…

Unity坦克大战开发全流程——游戏场景——敌人——移动的敌人

游戏场景——敌人——移动的敌人 制作预制体 将坦克拖拽至场景中进行设置 写代码 让坦克在两点之间不停移动 随机坐标函数 然后在start()中调用即可 坦克要一直盯着玩家 当小于一定距离时&#xff0c;攻击玩家 重写开火逻辑 注意还要将其tag改成Monster&#xff01; 当敌人死…

huggingface的tokenizer解读

文章目录 前言一、huggingface的tokenizer含义1、含义2、整体概括 二、加载lmsys/vicuna-7b-v1.5模型的tokenizer三、调用tokernizer方法四、字符串的tokens应用1、tokenizer应用2、tokenizer进行token分词(tokenizer.tokenize)3、tokens转模型识别ids(tokenizer.convert_token…

Spring Cloud + Vue前后端分离-第9章 大文件断点续与极速秒传

源代码在GitHub - 629y/course: Spring Cloud Vue前后端分离-在线课程 ​​​​​​Spring Cloud Vue前后端分离-第9章 大文件断点续与极速秒传 作为一个视频网站&#xff0c;一个文件小则几十M&#xff0c;大则上G&#xff0c;上传一个大文件受网络影响很大&#xff0c;文…