sqoop

系列 | 漫谈数仓第三篇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的数据导出到关系型数据库中。

sqoop把hive数据导入mysql出现中文乱码

你离开我真会死。 提交于 2020-08-11 08:09:29
使用 sqoop 将 hive 数据导入 mysql 后出现乱码: 进入数据库,输入 show variables like 'character%'; 回车 我这里有两种解决办法,如下 方法1:修改数据库配置文件 (1)在下面这个位置添加几行配置 vim /etc/my.cnf init_connect = 'SET collation_connection = utf8_unicode_ci' init_connect = 'SET NAMES utf8' character-set-server = utf8 collation-server = utf8_unicode_ci skip-character-set-client-handshake (2)重启 mysql 服务 systemctl restart mysqld.service(我这里centos7) 或 service mysqld restart(centos6) 再次查看编码: 之后再执行命令的时候在mysql数据库名后面加上 ?useUnicode=true&characterEncoding=utf-8 就可以了。 示例: sqoop export --connect "jdbc:mysql://数据库ip:3306/数据库名称?useUnicode=true&characterEncoding

Sqoop--源数据含有默认换行符导致的数据不正确

那年仲夏 提交于 2020-08-10 01:47:15
问题描述 使用sqoop导数导到hdfs中,使用Hive查询发现数据多了,并且有数据错位的现象。 原因 源数据中有’\n’换行符,导致被hive识别为换行符。所以出现了记录多并且数据错位的现象。 解决方法 使用sqoop命令时加入: –hive-drop-import-delims 例如: sqoop import \ --connect ${CONNECT} \ --username ${USER} \ --password " ${PASSWD} " \ --query " select ${impala_fields} from ${MYSQL_TABLE} where \ $CONDITIONS " \ --where '1=1' \ --fields-terminated-by '\001' \ --hive-drop-import-delims \ --target-dir ${HDFS_DIR} / ${HIVE_DB} .db/ ${HIVE_TABLE} /part_key = ${HOST} \ --delete-target-dir \ --outdir ${PROGRAM_HOME} /java \ --null-string '\\N' \ --null-non-string "\0" \ -m ${NUMMAPPERS} 来源: oschina 链接:

关于HIVE增量同步的思考

不羁的心 提交于 2020-08-09 12:56:44
方案一、如果业务库没有删除操作,并且更新时间完整,使用更新时间做增量同步,sqoop只同步更新时间变化的数据,合并到ODS层表 方案二、如果业务库有删除操作,可以先解析数据库操作日志,存到hdfs,T+1同步数据后,对增删改做一次merge操作即可,可能需要代码实现。 来源: oschina 链接: https://my.oschina.net/u/4301845/blog/4332170

使用Hadoop分析气象数据完整版(附带完整代码)

你。 提交于 2020-08-06 19:49:59
《分布式》布置了一道小作业,让我花了7天时间学习了Hadoop。。。现在终于可以正式地做这个作业了,记录一下。 使用Hadoop分析气象数据 1 获取数据 1.1 下载数据 1.2 数据格式 1.3 合并数据 2 MapReduce处理数据 2.1 环境配置,启动集群 2.2 上传到HDFS 2.2 编写MapReduce代码 2.2.1 TemperatureMapper 2.2.2 TemperatureReducer 2.2.3 JobMain 2.3 执行 2.3.1 打包、上传 2.3.2 运行 3 导入数据到Hive 4 Hive数据分析 5 使用Sqoop导入数据到Mysql 5.1 Mysql创建数据库 5.2 开始导入 6 展示数据 6.1 前端代码 6.2 后端代码 1 获取数据 1.1 下载数据 注意:为了不出现横向拖拉,命令里我加了换行,所有命令都是如此。 获取命令: wget -D --accept-regex = REGEX -P data -r -c ftp://ftp.ncdc.noaa.gov/pub/data/noaa/isd-lite/2019/5* 注意:下载可能出现卡顿,直接 ctrl+c 中断,然后再次输入命令即可。 我就下载了下面这么多,共计78429条。 1.2 数据格式 截取部分数据,格式如下: 2019 01 01 00 -65

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

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

How to sqoop to import oracle clob data to avro files on hdfs

99封情书 提交于 2020-08-05 06:27:10
问题 I am getting a strange error when sqooping the data from oracle DB to HDFS. Sqoop is not able to import clob data into an avro files on hadoop. This is the sqoop import error : ERROR tool.ImportTool: Imported Failed: Cannot convert SQL type 2005 Do we need to add any extra arguments to sqoop import statement for it correctly import clob data into avro files ? 回答1: Update: Found the solution, We need to add -- map-column-java for the clob columns. For Eg: If the column name is clob then we

大数据篇:数据仓库案例

杀马特。学长 韩版系。学妹 提交于 2020-08-04 17:37:08
离线数据仓库 数据仓库(Data WareHouse)是为企业所有决策制定过程,提供所有系统数据支持的战略集合 通过对数据仓库中数据的分析,可以帮助企业,改进业务流程、控制、成本、提高产品质量等 数据仓库,并不是数据最终目的地,而是为数据最终的目的地做好准备:清洗、转义、分类、重组、合并、拆分、统计等等 1 项目简介 1.1 项目需求 用户行为数据采集平台搭建 业务数据采集平台搭建 数据仓库维度建模 分析:用户、流量、会员、商品、销售、地区、活动等主题 采用即席查询工具,随时进行指标分析 对集群性能进行监控,发生异常需要报警 元数据管理 质量监控 1.2 技术选型 数据采集功能如何技术选型 采集框架名称 主要功能 Sqoop 大数据平台和关系型数据库的导入导出 Datax 大数据平台和关系型数据库的导入导出 flume 擅长日志数据的采集和解析 logstash 擅长日志数据的采集和解析 maxwell 常用作实时解析mysql的binlog数据 canal 常用作实时解析mysql的binlog数据 waterDrop 数据导入导出工具 消息中间件的技术选型 开源MQ 概述 RabbitMQ LShift 用Erlang实现,支持多协议,broker架构,重量级 ZeroMQ AMQP最初设计者iMatix公司实现,轻量消息内核,无broker设计。C++实现 Kafka

大数据分析之纳税人画像-实现和优化思路

不羁的心 提交于 2020-07-28 20:37:09
1.背景环境 本文章来自最近做的项目模块的思考和总结,主要讲思路不涉及过多的基础和实现细节。 需求:统计出来纳税人名称、行业、近一年业务量(办税服务厅、电子税务局、自助渠道),近一年业务量top5(办税服务厅、电子税务局、自助渠道)、近一年纳税金额、近一年申报数、近一年用票数。支持根据所属税务机关分页查询。 看上去业务不复杂,但是 数据来自多个系统,数据量很大。 来来画个示意图展示下数据来源的复杂程度: 数据涉及5个厂商, 数据库采用oracle ,涉及几十张表,其中纳税人信息生产环境下有380多万,更不用说其他业务表的数据量有多大了,并且还需要分组,统计,排序。此时此刻心情如下: 2.实现方案 2.1 视图(失败的方案) 由于项目时间关系,想法很简单先采用视图,先实现再说。(其实在做的时候就有不详的预感,感觉这种方案不行)。于是开干,在实现的过程中我用到的 关键技术点有: oracle wm_concat(column)函数实现查询相同id字段,内容以逗号分隔 select id, wmsys.wm_concat(字段名)字段别名 from table group by id Oracle分组查询取每组排序后的前N条记录 SELECT * FROM ( SELECT 分组的字段名, ROW_NUMBER() OVER(PARTITION BY 分组的字段名 ORDER BY

sqoop1入门

一笑奈何 提交于 2020-07-28 19:52:06
简介 下载安装 http://sqoop.apache.org/ https://mirror.bit.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 在安装 目录bin下 ./sqoop help 连接mysql 需要 驱动包 cp mysql-connector-java-5.1.30.jar /hadoop/app/sqoop-1.4.7.bin__hadoop-2.6.0/lib/ 获取 数据库 ./sqoop list-databases --connect jdbc:mysql://192.168.0.102:3306 --username root -P 导入hdfs: ./sqoop import --connect jdbc:mysql://192.168.0.102:3306/test --username root -P --table t_user --target-dir /sqoop-test --num-mappers 1 导入hbase: demo # sqoop 帮助 ./sqoop help # sqoop import命令帮助 ./sqoop import --help # sqoop 列出database; ./sqoop list-databases -