maxcompute使用篇

news2024/9/20 15:34:44

文章目录

  • maxcompute使用篇
    • 1.mongoDB与maxcompute 进行数据同步
      • 1.1 基本类型的数据
      • 1.2部分复杂类型的数据
    • 2.maxcompute中复杂数据类型解析
        • 2.1 get_json_object
        • 2.2 json_tuple
        • 2.3 处理json几种失效的情况:
        • 2.4 STR_TO_MAP、MAP_KEYS
        • 2.5 regexp_replace
        • 2.6 FROM_JSON
        • 2.7 nvl
        • 2.8 trim

maxcompute使用篇

1.mongoDB与maxcompute 进行数据同步

1.1 基本类型的数据

  • 基本数据类型会根据同步任务配置的读取字段中的name自动读取对应path下的数据,并根据数据类型做自动转换,您无需指定column的type属性,如下图_id,uuid,key_name等普通类型可以根据配置的类型属性进行自动转换

image-20240917210619222

1.2部分复杂类型的数据

  • 需要通过配置column的type属性,进行自定义处理,如shop_list以key_info字段

    注意:

    1.在mongoDB和maxcompute进行数据同步时,如果mongoDB某个字段(如:key_info) 数据类型为Document,在mongoDB侧没有配置对应的Document类型的话,则直接将Document转 JSON 序列化处理

    2.如果mongoDB某个字段(如:shop_list) 数据类型为Array,在mongoDB侧没有配置对应的Array类型的话,则会将Array转成Document类型数据,无法进行处理

    3.有关MongoDB Reader支持的MongoDB数据类型详情,请查看该链接:https://help.aliyun.com/zh/dataworks/user-guide/mongodb-data-source?spm=a1z3jh.13523495.0.0.27af6242XNV15M

Array数据类型:

image-20240917210740048

Document数据类型:

image-20240917210813485

maxcompute侧配置:

image-20240917211050059

2.maxcompute中复杂数据类型解析

2.1 get_json_object
  • 概述:从 JSON 字符串中提取特定字段值的函数,接受一个 JSON 字符串和一个路径表达式作为参数,返回一个字符串类型的值,表示指定路径的 JSON 字段值。如果路径不存在,返回NULL

  • 语法 : get_json_object(json_column, ‘$.name’)

  • 注意:一次只能解析一个json字段,可以嵌套解析多层json

    image-20240917211253071

2.2 json_tuple
  • 概述:通过列名来指定要提取的字段,相对来说更加直观。在同时提取多个字段时,代码的可读性更好。如果路径不存在,返回NULL

  • 语法 : json_tuple(json_data, ‘name’, ‘age’)

  • 注意:

    1.每次能够同时解析多个字段,不能解析嵌套的json,如果需要解析嵌套的,那么只能一层层解析

    2.json_tuple如果需要给解析的多个json字段起别名,需要结合侧视图一起使用

    image-20240917211521769

2.3 处理json几种失效的情况:
(1)json格式不对,输入的字符串根本不是有效的 JSON 格式。例如,字符串存在语法错误、缺失关键的括号或引号等。
(2)提供的路径表达式错误。路径表达式用于指定要从 JSON 中提取的部分,如果表达式不正确,无法准确定位到目标数据。
(3)数据类型不匹配。例如,期望提取的是一个字符串,但实际是一个数字或对象。
(4)嵌套层次过深。如果 JSON 数据的嵌套层次非常复杂,可能超出了 get_json_object 函数的处理能力或导致性能问题。
(5)处理超大的 JSON 数据。当 JSON 数据过大,可能会导致内存不足或处理超时的情况。
2.4 STR_TO_MAP、MAP_KEYS
  • STR_TO_MAP:

    • 概述:用于将一个字符串转换为映射(map)类型
    • 语法:STR_TO_MAP(map_string_column, ‘,’, ‘:’) ,分隔键值对的分隔符是',',分隔键和值的分隔符是':'
  • MAP_KEYS

    • 概述:获取映射(map)类型数据的所有键组成的数组
    • 语法:MAP_KEYS(map_column)
  • 补充:结构体(struct)和映射(map)之间的区别

    • STRUCT<name:STRING, age:INT, grade:STRING>
    • MAP<STRING,STRING>

    image-20240917211626829

2.5 regexp_replace
  • 概述:用于使用正则表达式进行字符串替换
  • 语法 : regexp_replace(string, pattern, replacement)
    • string:要进行替换操作的原始字符串。
    • pattern:正则表达式模式,用于匹配要被替换的部分。
    • replacement:用于替换匹配部分的新字符串

image-20240917211708767

2.6 FROM_JSON
  • 概述:用于将 JSON 字符串解析为特定数据结构(如结构体、数组等)的函数,常与炸裂函数一起使用
  • 语法 : from_json(list_ids,‘array’)
    • array : 转换的数据类型
    • STRING : 数组里面的数据类型

image-20240917211756568

2.7 nvl
  • 概述:nvl函数用于处理空值(注意:在maxcompute中没有ifnull函数)
  • 语法 : nvl(expr1, expr2)
    • expr1:要检查是否为 NULL 的表达式。
    • expr2:如果expr1为 NULL,则返回这个表达式的值
  • 注意事项
    • nvl函数只能处理一个空值情况,如果需要处理多个不同类型的空值,可以结合其他函数或逻辑来实现
    • 确保替换值的类型与要处理的列的类型兼容,否则可能会导致类型转换错误
2.8 trim
  • 概述:用于去除字符串两端的特定字符

  • 语法 : trim([leading|trailing|both] [characters] FROM string)

    • leading:表示去除字符串开头的字符,默认是去除两端的字符。
    • trailing:表示去除字符串末尾的字符
    • both:表示去除字符串两端的字符,这是默认行为
    • characters:要去除的字符集,如果不指定,则默认去除空格
    • string:要进行处理的字符串
    • trim(string):默认去除字符串两端的空格

    image-20240917211818049

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

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

相关文章

基于matlab的通信系统设计及仿真

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图参考文献设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设…

PHP邮箱系统:从入门到实战搭建教程指南!

PHP邮箱系统配置教程&#xff1f;如何选用合适的PHP邮箱系统库&#xff1f; 为了满足个性化和定制化的需求&#xff0c;许多开发者选择使用PHP来搭建自己的邮箱系统。AokSend将带你从入门到实战&#xff0c;详细介绍如何搭建一个功能完善的PHP邮箱系统。 PHP邮箱系统&#xf…

谈谈你对线程池的了解

一、什么是线程池 线程池是一种创建和管理线程的技术。 二、怎么创建线程池 通过Executors工具类的静态方法&#xff0c;创建线程池。创建ThreadPoolExecutor对象&#xff0c;按照业务需要&#xff0c;自定义线程参数&#xff0c;创建线程池。 三、线程池的状态有哪些 线程池的…

VMware vCenter Server 8.0U3b 发布下载,新增功能概览

VMware vCenter Server 8.0U3b 发布下载&#xff0c;新增功能概览 Server Management Software | vCenter 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vcenter-8-u3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysi…

VirtualBox7.1.0 安装 Ubuntu22.04.5 虚拟机

环境 &#xff08;1&#xff09;宿主机系统&#xff1a;Windows10 &#xff08;2&#xff09;虚拟机软件&#xff1a;VirtualBox7.1.0 &#xff08;3&#xff09;虚拟机系统&#xff1a;Ubuntu 22.04.5 LTS (Jammy Jellyfish) 步骤 &#xff08;1&#xff09;第一步 &…

Python基础(七)——PyEcharts数据分析(面向对象版)

四、使用PyEcharts数据分析案例&#xff08;面向对象版&#xff09; 【前言&#xff1a;为了巩固之前的Python基础知识&#xff08;一&#xff09;到&#xff08;五&#xff09;&#xff0c;并为后续使用Python作为数据处理的好帮手&#xff0c;我们一起来用面向对象的思想来理…

并发编程 - 锁(@synchronized)

引言 在前面的博客中&#xff0c;我们已经讨论了锁在多线程编程中的重要性&#xff0c;主要是为了解决多线程同时访问同一片共享数据时发生的竞争条件&#xff08;race conditions&#xff09;&#xff0c;导致数据不一致和崩溃问题。 并且介绍了一个在Objective-C中&#xf…

mysql笔记7(单表查询)

文章目录 1. select① 从伪表里查数据(可以结合第3点dual理解数据来源)select 文字 ;做计算&#xff1a;select 算式;select 文字( 或算式) as 别名;(as 用于起别名&#xff0c;可省略) ② 从真实表里查数据select * from 表名;select 字段名&#xff0c;字段名 from 表名; 2. …

centos远程桌面连接windows

CentOS是一款广泛使用的Linux发行版&#xff0c;特别是在服务器领域。很多企业和个人用户会选择远程连接到CentOS进行操作和维护。虽然CentOS自带了一些远程桌面解决方案&#xff0c;但它们在使用上存在一些局限性。接下来&#xff0c;我将介绍如何实现CentOS的远程桌面连接&am…

关于wordPress中的用户登录注册等问题

前言 大家在做类似的功能的时候&#xff0c;有没有相关的疑问。那就是我都已经选择好了相应的主题和模版&#xff0c;但是为什么都没有用户注册和用户登录的页面存在呢&#xff1f; WordPress默认情况下不提供用户注册和登录功能的原因是它最初是作为一个博客平台开发的&…

OCR两篇革命之作

DocOwl2 参考 阿里8B模型拿下多页文档理解新SOTA&#xff0c;324个视觉token表示一页&#xff0c;缩减80% mPLUG-DocOwl 2聚焦多页文档理解&#xff0c;兼顾效果和效率&#xff0c;在大幅缩减单页视觉token的前提下实现了多页文档理解的SOTA效果。 仅用324个token表示文档图…

离散制造 vs 流程制造:锚定精准制造未来,从装配线到化学反应,实时数据集成在制造业案例中的多维应用

使用 TapData&#xff0c;化繁为简&#xff0c;摆脱手动搭建、维护数据管道的诸多烦扰&#xff0c;轻量替代 OGG, Kettle 等同步工具&#xff0c;以及基于 Kafka 的 ETL 解决方案&#xff0c;「CDC 流处理 数据集成」组合拳&#xff0c;加速仓内数据流转&#xff0c;帮助企业…

使用雷达速度因子进行越野导航的鲁棒高速状态估计

使用雷达速度因子进行越野导航的鲁棒高速状态估计 Morten Nissov 1 , 2 ^{1,2} 1,2, Jeffrey A. Edlund 1 ^{1} 1, Patrick Spieler 1 ^{1} 1, Curtis Padgett 1 ^{1} 1, Kostas Alexis 2 ^{2} 2 和 Shehryar Khattak 1 ^{1} 1 摘要 在复杂环境中实现机器人自主性以用于关键…

【限流算法】

文章目录 介绍算法原理适用场景令牌通算法实现限流算法 介绍 令牌桶算法是网络流量整形&#xff08;Traffic Shaping&#xff09;和速率限制&#xff08;Rate Limiting&#xff09;中最常使用的一种算法。典型情况下&#xff0c;令牌桶算法用来控制发送到网络上的数据的数目&a…

第6天:趋势轮动策略开发(年化18.8%,大小盘轮动加择时)

原创内容第655篇&#xff0c;专注量化投资、个人成长与财富自由。 轮动策略是一种投资策略&#xff0c;它涉及在不同的资产类别、行业或市场之间进行切换&#xff0c;以捕捉市场机会并优化投资组合的表现。 这种策略的核心在于识别并利用不同资产或市场的相对强弱&#xff0c…

[数据集][目标检测]智慧养殖场肉鸡目标检测数据集VOC+YOLO格式3548张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3548 标注数量(xml文件个数)&#xff1a;3548 标注数量(txt文件个数)&#xff1a;3548 标注…

医学数据分析实训 项目九 糖尿病风险预测

文章目录 综合实践二 糖尿病遗传风险预测一、分析目标二、实现步骤三、数据准备四、特征工程五、模型构建六、性能度量七、提交要求 综合实践任务二 糖尿病遗传风险预测代码&#xff08;一&#xff09;数据准备&#xff08;二&#xff09;特征工程&#xff08;三&#xff09;模…

Selenium通过ActionBuilder模拟鼠标操作直接移动到指定坐标的注意事项

在目前&#xff08;2024-09-18&#xff09;得Selenium官方手册中&#xff0c;模拟鼠标操作基本上都是通过ActionChains完成的&#xff0c;唯独有一动作&#xff0c;是通过ActionBuilder完成的。 而前者ActionChains&#xff0c;主要是通过offset&#xff0c;也就是坐标偏移量来…

【Prometheus】jmx_prometheus_javaagent监控java应用

目录 一、概述 1.1 promethues简介 1.2 JMX Exporter简介 二、监控SparkHistoryServer实现 一、概述 1.1 promethues简介 promethues采集数据的方法很多&#xff0c;常用的是通过各种exporter去主机采集&#xff0c;然后有些程序是没有相关的exporter,所以有些时候会通过脚…

信息学奥赛报考指南

近年来&#xff0c;信息学奥林匹克竞赛&#xff08;NOI&#xff09;越来越受到家长和学生的重视。这项竞赛不仅能培养孩子的编程与算法思维&#xff0c;还为优秀的选手提供了进入国内顶尖大学的保送资格&#xff0c;并有机会参加国际级赛事。因此&#xff0c;许多家长都希望了解…