分享

sqoop2系统入门之3:用户指南通用JDBC连接器

sehriff 2017-8-27 23:51:12 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 11385
问题导读

1.通用JDBC连接器的用法?
2.如何配置分区器Partitioner?
3.如何配置抽取器Extractor?
4.如何配置加载器Loader?
5.如何配置销毁器Destroyers?






上一篇:sqoop2系统入门之2:用户指南shell命令


通用JDBC连接器可以连接所有支持JDBC4规范的数据源。

目录
•        通用JDBC连接器
  • 用法
  • 连接配置
  • FROM 作业配置
  • TO 作业配置
  • 分区器Partitioner
  • 抽取器Extractor
  • 加载器Loader
  • 销毁器Destroyers


1.用法

通过创建连接器连接(link)和使用该连接的作业(job)来使用该通用JDBC连接器。

1.1配置连接(link)

配置连接(link)涉及的输入包括:

Input        
Type        
Description        
Example
JDBC Driver Class
String
必须的。完整的jdbc类路径。配置且Sqoop服务器需要能找到该类。
com.mysql.jdbc.Driver
JDBC Connection String
String
用于连接数据源的Jdbc连接字符串。创建时的连接的连通性是可选的。
jdbc:mysql://localhost/test
Username
String
可选的。连接数据源时提供的用户名。创建时的连通性的可选的。
sqoop
Password
String
可选的。连接数据源时提供的密码。创建时的连通性的可选的。
sqoop
JDBC Connection Properties
Map
可选的。传递到jdbc驱动的 Jdbc连接属性集合。
profileSQL=true&useFastDateParsing=false

1.2FROM 作业配置
FROM作业涉及的输入包括:
Input        
Type        
Description         Example
Schema name String 可选。作为表的一部分,表中不可或缺的模式名 sqoop
Table name String 可选。从该表名导入数据。参考以下注意点。 test
Table SQL statement String 可选。用于执行任意形式查询的sql statement。 SELECT COUNT(*) FROM test ${CONDITIONS}
Table column names String 可选。从jdbc数据源要抽取的列。列之间用逗号隔开。 col1,col2
Partition column name Map 可选。根据该列名将数据传输进程进行分区。默认选择主键的第一列。 col1
Null value allowed for the partition column Boolean 可选。根据分区列是否允许有null值来选择true 或 false 。 true
Boundary query String 可选。用于分区时定义上下界的查询。


1.2.1. 注意点
1.表名和表的sql statement是互斥的。配置了表名,就不用配置表的sql statement。配置了表的sql statement,就不用配置表名。
2.只有配置了表名,才可以配置表的列名。
3.If there are columns with similar names, column aliases are required.如果有相同的列名,给列名赋别名是必须的。例如:SELECT table1.id as "i", table2.id as "j" FROM table1 INNER JOIN table2 ON table1.id = table2.id.

1.3.  TO 作业配置
TO作业涉及的输入包括:
Input         Type         Description         Example
Schema name String 可选。表中不可或缺的模式名。 sqoop
Table name String 可选。从该表名导入数据。参考以下注意点。 test
Table SQL statement String 可选。用于执行任意形式查询的sql statement。 INSERT INTO test (col1, col2) VALUES (?, ?)
Table column names String 可选。要插入的数据源的列。列之间用逗号隔开。 col1,col2
Stage table name String 可选,用于作为stage表的表名。 staging
Should clear stage table Boolean 可选。根据stage表的列是否允许有null值来选择true 或 false 。 true

1.3.1. 注意点:
  • 表名和表的sql statement是互斥的。配置了表名,就不用配置表的sql statement。配置了表的sql statement,就不用配置表名。
  • 只有配置了表名,才可以配置表的列名。

2.2. 分区器Partitioner
统一jdbc连接器的分区器用于生成条件供抽取器使用。根据分区列不同的数据类型,它分区数据传输的方式也不同。但是,每种策略都大致使用以下形式:
[mw_shl_code=applescript,true](上界 – 下界) / (最大分区数)[/mw_shl_code]
在没指定别的列的情况下,默认使用主键分区数据。
目前支持以下的数据类型:
[mw_shl_code=applescript,true]1.        TINYINT
2.        SMALLINT
3.        INTEGER
4.        BIGINT
5.        REAL
6.        FLOAT
7.        DOUBLE
8.        NUMERIC
9.        DECIMAL
10.        BIT
11.        BOOLEAN
12.        DATE
13.        TIME
14.        TIMESTAMP
15.        CHAR
16.        VARCHAR
17.        LONGVARCHAR[/mw_shl_code]

2.3. 抽取器(Extractor)
在抽取阶段,使用SQL查询JDBC数据源。配置不同,SQL也不同。
  • 如果指定了表名,将会使用[mw_shl_code=applescript,true]SELECT * FROM <table name>[/mw_shl_code]形式生成SQL statement
  • 如果指定了表名及列名,将会使用[mw_shl_code=applescript,true]SELECT <columns> FROM <table name>[/mw_shl_code]形式
生成SQL statement。
  • 如果指定了表的SQL statement ,就会使用该SQL statement。

分区器生成的条件将会被追加到SQL查询语句后以查询部分数据。

统一JDBC连接器抽取CSV数据并以CSV媒介数据类型提供使用。

2.4. 加载器(Loader)
在数据加载阶段,使用SQL查询JDBC数据源。配置不同,SQL也不同。
  • 如果指定了表名,将会使用[mw_shl_code=applescript,true]INSERT INTO <table name> (col1, col2, ...) VALUES (?,?,..)[/mw_shl_code]形式生成SQL statement
  • 如果指定了表名及列名,将会使用[mw_shl_code=applescript,true]INSERT INTO <table name> (<columns>) VALUES (?,?,..)[/mw_shl_code]生成SQL statement。
  • 如果指定了表的SQL statement ,就会使用该SQL statement。
统一JDBC连接器抽取CSV数据并以CSV媒介数据类型提供使用。

2.5. 销毁器(Destroyers)
统一JDBC连接器在TO作业的销毁器中执行两步操作:
  • 将stage表的内容拷贝到目标表。
  • 清空stagin表.
对FROM作业不执行操作。




相关篇章


sqoop2系统入门之1:用户指南5分钟入门Demo
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22549


sqoop2系统入门之2汇总:用户指南shell命令【可收藏备查】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22602



sqoop2系统入门之3:用户指南通用JDBC连接器
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22563


sqoop2系统入门之4:用户指南HDFS 连接器
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22564


sqoop2系统入门之5:用户指南Kafka 连接器
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22565


sqoop2系统入门之6之开发指南篇:Sqoop Java 客户端API指南
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22619


sqoop2系统入门之7之开发指南篇:编译Sqoop2源码
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22647


sqoop2系统入门之8之开发指南篇:Sqoop 2开发环境配置
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22659


sqoop2系统入门之9之管理员指南篇:Spoop Tool使用介绍
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22698


sqoop2系统入门之10之管理员指南篇:Spoop2升级
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22705


sqoop2系统入门之11之管理员指南篇:Sqoop安装
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22709



本帖被以下淘专辑推荐:

已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条