datax

系列 | 漫谈数仓第三篇NO.3 『数据魔法』ETL

回眸只為那壹抹淺笑 提交于 2020-08-15 03:24:14
本文目录CONTENTS ☞ ETL同步之道 [ Sqoop、DataX、Kettle、Canal、StreamSets ] ☞ ETL之技术栈 [ 重工具 vs 开发语言 ] ☞ ETL加载策略 [ Merge、Delta、拉链 ] ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。 ETL工具或类ETL的数据集成同步工具或语言,企业生产中工具也非常之多,主流的etl工具有Sqoop、DataX、Canal、flume、Logstash、kettle、DataStage、Informatica、Talend等,语言有强悍的SQL、Shell、Python、Java、Scala等。而数据源多为业务系统,埋点日志,离线文件,第三方数据等。 数据同步之道 01. sqoop Sqoop,SQL-to-Hadoop 即 “SQL到Hadoop和Hadoop到SQL”。 是Apache开源的一款在Hadoop和关系数据库服务器之间传输数据的工具。主要用于在Hadoop与关系型数据库之间进行数据转移,可以将一个关系型数据库(MySQL ,Oracle等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库中。

从 Exadata 到 TiDB,中通快递 HTAP 实践

六眼飞鱼酱① 提交于 2020-08-13 14:48:27
作者介绍:朱志友,中通快递大数据架构师。 中通快递背景介绍 中通快递业务的规模目前是世界第一,是第一个达成年百亿业务量的快递企业,在 2019 年的双十一更是完成了订单量超过 2 亿的佳绩。中通科技是中通快递旗下的互联网物流科技平台,拥有一支千余人规模的研发团队,秉承着“互联网+物流”的理念,与公司的战略、业务紧密的衔接,为中通生态圈的业务打造全场景全链路的数字化平台服务。 上图展示了快递物流的生命周期,简单举个例子,大家如果在某宝上下了一个订单,从付款结束开始,到商家打单,大家的包裹基本上就开启了一个快递的旅程。简单的介绍可以分为五个字,收发到派签,整个物流的全链路中可以拆解成以下的关键节点,客户下单之后快递员的揽收,揽收网点的建包,建包之后会把快递交到中心,至此快递就开启了转运和运输的过程,最终负责派件的末端网点会根据三段码的解析去末端的中心把快递拉到末端的快递网点进行分拣,分拣之后会指派到指定的快递员,进行派件,快递小哥会把快递送到客户的手里,客户完成签收,在我们看来这一票件就完成了快递的全链路的生命周期。在每个环节中会产生大量的数据,对每个环节的每一个数据我们都会进行相关的分析,包括时效的监控。 2017 年的时候,我们就已经开始关注 TiDB ,那时候的关注点主要在解决一些分库分表的问题上,从 2018 年底开始调研测试大数据,我们主要想去解决存储和计算的问题,2019

数据源管理 | 分布式NoSQL系统,Cassandra集群管理

做~自己de王妃 提交于 2020-08-13 12:34:04
本文源码: GitHub·点这里 || GitEE·点这里 一、Cassandra简介 1、基础描述 Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,此后,由于Cassandra良好的可扩展性,逐渐发展成为了一种流行的分布式结构化数据存储方案。 2、特点分析 弹性可扩展性 Cassandra是高度可扩展的;它允许添加更多的硬件以适应更多的客户和更多的数据根据要求,可以根据业务的数据流量轻松扩展集群规模。 架构特点 Cassandra可以基于分布式运行,并采用了许多容错机制。由于去中心化无主的策略,所以没有单点故障。可以做到不停服滚动升级。这是因为Cassandra可以支持多个节点的临时失效(取决于群集大小),对群集的整体性能影响可以忽略不计。并且Cassandra提供多地域容灾。Cassandra允许将数据复制到其他数据中心,并在多个地域保留多副本,十分适用于不能承担故障的关键业务,必须持续提供服务的应用程序。 数据存储机制 Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。可以根据业务的需要动态地适应变化的数据结构,并且通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。有许多案例证明Cassandra可以在金融,医疗,物联网等领域使用。 资源整合能力

环境篇:数据同步工具DataX

£可爱£侵袭症+ 提交于 2020-08-13 09:12:16
环境篇:数据同步工具DataX 1 概述 https://github.com/alibaba/DataX DataX是什么? DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。 设计理念 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。 当前使用现状 DataX在阿里巴巴集团内被广泛使用,承担了所有大数据的离线同步业务,并已持续稳定运行了6年之久。目前每天完成同步8w多道作业,每日传输数据量超过300TB。 2 支持数据 类型 数据源 Reader(读) Writer(写) 文档 RDBMS 关系型数据库 MySQL √ √ 读 、 写 Oracle √ √ 读 、 写 SQLServer √ √ 读 、 写 PostgreSQL √ √ 读 、 写 DRDS √ √ 读 、 写 达梦 √ √ 读 、 写 通用RDBMS(支持所有关系型数据库) √ √ 读 、 写 阿里云数仓数据存储 ODPS √ √ 读 、 写 ADS

机器学习实战---K均值聚类算法

我的未来我决定 提交于 2020-08-10 20:11:41
一:一般K均值聚类算法实现 (一)导入数据 import numpy as np import matplotlib.pyplot as plt def loadDataSet(filename): dataSet = np.loadtxt(filename) return dataSet (二)计算两个向量之间的距离 def distEclud(vecA,vecB): #计算两个向量之间距离 return np.sqrt(np.sum(np.power(vecA-vecB, 2 ))) (三)随机初始化聚簇中心 def randCent(data_X,k): #随机初始化聚簇中心 可以随机选取样本点,或者选取距离随机 m,n = data_X.shape centroids = np.zeros((k,n)) #开始随机初始化 for i in range(n): Xmin = np.min(data_X[:,i]) #获取该特征最小值 Xmax = np.max(data_X[:,i]) #获取该特征最大值 disc = Xmax - Xmin #获取差值 centroids[:,i] = (Xmin + np.random.rand(k, 1 )*disc).flatten() #为i列特征全部k个聚簇中心赋值 rand(k, 1 )表示产生k行1列在0- 1之间的随机数

POSTman chrome插件使用学习记录

流过昼夜 提交于 2020-08-10 13:58:54
最近需要 测试 产品中的REST API,无意中发现了PostMan这个chrome插件,把玩了一下,发现postman秉承了一贯以来google工具强大,易用的特质。独乐乐不如众乐乐,特此共享出来给大伙。 Postman介绍 Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件。其主要功能包括: 模拟各种HTTP requests 从常用的 GET、POST 到 RESTful 的 PUT 、 DELETE …等等。 甚至还可以发送文件、送出额外的 header。 Collection 功能(测试集合) Collection 是 requests的集合,在做完一個测试的時候, 你可以把這次的 request 存到特定的 Collection 里面,如此一來,下次要做同样的测试时,就不需要重新输入。而且一个collection可以包含多条request,如果我们把一个request当成一个test case,那collection就可以看成是一个test suite。通过collection的归类,我们可以良好的分类测试软件所提供的API.而且 Collection 还可以 Import 或是 Share 出來,让团队里面的所有人共享你建立起來的 Collection。 人性化的Response整理

datax使用

妖精的绣舞 提交于 2020-08-09 12:40:09
1.dataX安装二进制 下载就可以用 下载DataXwget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz 解压DataXtar zxvf datax.tar.gz 修改权限chmod R 755 datax 2.数据库配置 data datax 3.job { "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "column": [ "id", "name" "age" ], "connection": [ { "jdbcUrl": ["jdbc:mysql://192.168.31.129:3306/data"], "table": ["stu"] } ], "password": "123456", "username": "data" } }, "writer": { "name": "mysqlwriter", "parameter": { "column": [ "id", "name" "age" ], "connection": [ { "jdbcUrl": "jdbc:mysql://192.168.31.129:3306/datax", "table": ["stu"] } ],

机器学习实战---决策树CART回归树实现

蓝咒 提交于 2020-08-05 12:35:18
机器学习实战---决策树CART简介及分类树实现 一: 对比分类树 CART回归树和CART分类树的建立算法大部分是类似的,所以这里我们只讨论CART回归树和CART分类树的建立算法不同的地方。 首先,我们要明白,什么是回归树,什么是分类树。 两者的区别在于样本输出: 如果样本输出是离散值,那么这是一颗分类树。 如果果样本输出是连续值,那么那么这是一颗回归树。 除了概念的不同,CART回归树和CART分类树的建立和预测的区别主要有下面两点: 1)连续值的处理方法不同 2)决策树建立后做预测的方式不同。 对于连续值的处理,我们知道CART分类树采用的是用基尼系数的大小来度量特征的各个划分点的优劣情况,这比较适合分类模型。 但是对于回归模型,我们使用了常见的和方差的度量方式。 CART回归树的度量目标是,对于任意划分特征A,对应的任意划分点s两边划分成的数据集D1和D2,求出使D1和D2各自集合的均方差最小,同时D1和D2的均方差之和最小所对应的特征和特征值划分点。 表达式为: 其中, c 1 为D1数据集的样本输出均值, c 2 为D2数据集的样本输出均值。 对于决策树建立后做预测的方式,上面讲到了CART分类树采用叶子节点里概率最大的类别作为当前节点的预测类别。 而回归树输出不是类别,它采用的是用最终叶子的均值或者中位数来预测输出结果 。 除了上面提到了以外

大数据采集和抽取怎么做?这篇文章终于说明白了!

拜拜、爱过 提交于 2020-07-26 12:06:31
本文来源于公众号【胖滚猪学编程】,转载请注明出处! 关于数据中台的概念和架构,我们在 大白话 六问数据中台 和 数据中台全景架构及模块解析!一文入门中台架构师! 两篇文章中都说明白了。从这一篇文章开始分享中台落地实战。 其实无论是数据中台还是数据平台,数据无疑都是核心中的核心,所以闭着眼睛想都知道数据汇聚是数据中台/平台的入口。纵观众多中台架构图,数据采集与汇聚都是打头阵的: 本文将从以下几个方面分享数据采集的方方面面: 一、企业数据来源 二、数据采集概念和价值 三、数据采集常用工具 四、数据采集系统设计原则 五、数据采集模块生产落地分享 有来源才能谈采集,因此我们先来归纳下企业中数据来源。 数据来源 企业中的数据来源极其多,但大都都离不开这几个方面: 数据库,日志,前端埋点,爬虫系统等。 数据库我们不用多说,例如通常用mysql作为业务库,存储业务一些关键指标,比如用户信息、订单信息。也会用到一些Nosql数据库,一般用于存储一些不那么重要的数据。 日志也是重要数据来源,因为日志记录了程序各种执行情况,其中也包括用户的业务处理轨迹,根据日志我们可以分析出程序的异常情况,也可以统计关键业务指标比如PV,UV。 前端埋点同样是非常重要的来源,用户很多前端请求并不会产生后端请求,比如点击,但这些对分析用户行为具有重要的价值,例如分析用户流失率,是在哪个界面,哪个环节用户流失了

Delphi常用关键字用法详解

亡梦爱人 提交于 2020-05-08 21:16:32
absolute: // 它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同. var Str: string [ 32 ]; StrLen: Byte absoluteStr; // 这个声明指定了变量StrLen起始地址与Str相同. // 由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度. begin Str : = ' abc ' ; Edit1.Text : = IntToStr(StrLen); end ; abstract: // 它允许你创建抽象的方法, 包括有抽象方法的类称为抽象类. // Abstract关键字必须与Virtual或Dynamic关键字同时使用, 因为抽象方法必须被覆盖式实现. // 抽象类不能实例化, 抽象方法不能包含方法体. type TDemo = class private protected procedure X; virtual ; abstract ; public constructor Create ; destructor Destroy ; override ; published end ; and: // 一、表示逻辑与 if (a> 0 ) and (b> 0 ) then // 二、表示位运算 var a,b,c: Integer; begin c : = (a and