Hive/MaxCompute SQL性能优化(一):什么是数据倾斜 数据倾斜是指在并行计算模式下(map-reduce框架,数据被切分为N个片段,分发到不同的计算节点上,单独计算),部分节点处理的数据量远大于其他节点,造成该节点计算压力过大,从而导致少数节点的运行时长远远超过其他节点的平均运行时长,进而影响整体任务产出时效,造成任务延迟,这个现象就是数据倾斜。...
odps进阶之参数化视图 ODPS(MaxCompute) 里面也有一个阉割版的存储过程---参数化视图。我们知道视图是将固定的计算逻辑存储下来,通过调用视图简化代码。而参数化视图就是可以在视图代码里调用入参变量,从而达到更灵活的使用视图,一个通用逻辑供多种场景使用。
odps列转行之trans_array/trans_cols trans_array用于将一行数据转为多行的UDTF,将列中存储的以固定分隔符格式分隔的数组转为多行。命令格式trans_array (num_keys, separator, key1,key2,…,col1, col2,col3) as (key1,key2,…,col1, col2)参数说明● num_keys: bigint类型常量,必须>=0。在转为多行时作为转置key的列的个数。Key是指在将一行转为多行时,在多行中重复的列。● separator:s...
odps优化之arg_max/arg_min arg_max(col1, col2)效果:查询col1列的最大值,并返回该记录中col2的值。arg_min(col1, col2)效果:查询col1列的最小值,并返回该记录中col2的值。优势:1:一般我们要查询某个列排名第一的其他字段的值的时候,一般会用row_number进行排序,然后取rn等于1的记录,当类似操作很多且数据量大的时候,是很影响性能的。而使用arg_max(col1,col2)就可以轻松的得到这个结果。2:或者当我们想取某个字符串列中最长的记录的内容时,一般我们都是先取最
善用Grouping Sets 提升代码效率 使用Grouping Sets可按照多个不同的维度组合进行聚合,减少了繁琐的代码,提升整体计算的效率。比如,需要对国家,省份,城市各维度进行聚合时候,可能会这么写:select '国家' as gep_type,country as geo_name,count(*) as cnt from tbl group by countryunion all select '省份' as gep_type,province as geo_name,count(*) as cnt from tbl gr
别再使用count distinct了 在数仓开发中经常会对数据去重后统计,而对于大数据量来说,count(distinct )操作明显非常的消耗资源且性能很慢。下面介绍我平时使用最多的一种you'hua
数据湖简介 数据湖是将公司所有数据,外部数据,不知道要不要用的数据放在一起,通过一定的数据治理,让数据可以被发现,被理解,以用于交叉查询或机器学习的研究。数据湖不麻烦,管理数据湖中的数据最麻烦,一不小心就会变成数据沼泽。没人知道里面有什么数据,从哪来的,是干嘛的。目前市面上流行的三大开源数据湖方案分别为:DeltaLake, Hudi, Iceberg 。
数仓必会:Sqoop常用命令(全量/增量/全库同步) 增量,全量,全库将数据在关系型数据库MySQL,Oracle,Postgre以及Hive,HDFS之间进行数据同步操作,允许自动映射数据类型,还有很多其他参数如分隔符,文件格式,编码等参数请参考官方手册按需进行配置。
CDC系列(三)、Debezium 监控MySQL操作日志实时同步到Kafka(对比canal,maxwell) 目录前言准备工作配置Connector注册启动Connector验证CDC尾巴CDC系列:CDC系列(一)、Canal 集群部署及使用(带WebUI)CDC系列(二)、Maxwell_v1.27.1 监控MySQL操作日志实时同步到Kafka前言前两篇我们介绍了CDC工具,以及利用Canal和Maxwell监控mysql操作日志并写入kafka,本篇我们来讲解另一个CDC工具:debezium。debezium不仅仅支持mysql的监控,目前最新版已支持mysql
Kafka系列(七)、Kafka套件 Confluent Platform 单机/集群部署 Confluent 由kafka的核心成员成立,目前最新版Confluent为v5.5.1版本,对应的kafka版本为Apache Kafka_v2.5.0,在Confluent中不仅包含了kafka,还有下面几个组件,增强了kafka的功能也大大提升了kafka的易用性。KSQL:通过SQL查询topic内的数据;Confluent Connetors:支持配置HDFS,Cassandra,MySQL,Oracle,Postgre,MongoDB,Kudu等数据源的source和sink;Conf
Kafka系列(六)、Kafka开发套件kafka lenses 安装及使用(带WebUI) Lenses 是kafka的一个商用套件,本次我们使用docker安装他们给我们提供的开源版本,该开源版本包含超多组件,对于平时开发使用来说很友好,不需要去安装一堆开发组件,它自带了Apache Kafka, Kafka Connect, Zookeeper, Confluent Schema Registry,Confluent REST Proxy 以及几个lenses开源的管理ui界面kafka-topics-ui, schema-registry-ui, kafka-connect-ui,
CDC系列(二)、Maxwell_v1.27.1 监控MySQL操作日志实时同步到Kafka 在上一篇我们介绍了CDC工具,以及Canal的集群安装和使用,本篇我们来讲解另一个CDC工具:Maxwell。和Canal一样,Maxwell也是将自己伪装成MySQL的slave节点,通过监控MySQL的binlog来将数据操作日志同步到kafka等消息队列中供异构数据源使用。本篇我们会介绍Maxwell的安装和使用。和Canal一样,一定要至少准备一个MySQL库用于Maxwell的管理库存放状态信息以及用来监控的MySQL库,监控到的binlog导出到kafka,因此也需要准备kafka
CDC系列(一)、Canal 集群部署及使用(带WebUI) CDC(Change Data Capture)是一种捕获数据修改的技术方案,常常应用于异构数据源之间的数据同步。通常有两种解决方案:批式定时根据查询条件采集变更数据、监控数据源的操作日志。对于第一种批式的方案好处是门槛低成本低但坏处是可能会造成数据丢失以及数据有延迟等等,第二种日志方案好处很明显,比如对数据源侵入性低,数据时效性更高,不会有数据丢失的风险等等。在目前的关系型数据库中如MySQL、Oracle、SQLServer、Postgre等都提供了用于同步的日志解决方案,如MySQL基于binlog在
Kafka系列(五)、开启SASL安全认证以及配置ACL权限控制 本篇是kafka系列的第五篇,介绍kafka配置安全认证SASL以及ACL权限控制,并使用控制台和python访问开启了SASL认证的kafka集群。
Kafka系列(四)、消费者策略、Rebalance机制、Offset存储机制 本篇是kafka系列的第四篇,介绍kafka消费者策略,分区分配策略,Rebalance重分配策略,以及offset存储机制
Kafka系列(三)、生产者分区策略、ISR、ACK、幂等性、事务机制 本篇是kafka系列的第三篇,介绍kafka生产者的分区策略、ISR、ACK机制,故障处理,一致性语义,Exactly Once精准一次性语义等
Kafka系列(一)、2.6.0版本kafka集群搭建 本篇是kafka系列的正式第一篇,首先介绍搭建kafka集群。Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。