Sqoop使用简介

Similar documents
未命名

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

目錄

untitled

PowerPoint 演示文稿

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

PowerPoint 演示文稿

业 务 与 运 营 Business & Operation (Transform) 加 载 (Load) 至 目 的 端 的 过 程, 该 部 分 在 数 据 挖 掘 和 分 析 过 程 中 为 最 基 础 的 一 部 分 一 个 良 好 的 ETL 系 统 应 该 有 以 下 几 个 功 能 1

Reducing Client Incidents through Big Data Predictive Analytics

培 训 机 构 介 绍 中 科 普 开 是 国 内 首 家 致 力 于 IT 新 技 术 领 域 的 领 航 者, 专 注 于 云 计 算 大 数 据 物 联 网 移 动 互 联 网 技 术 的 培 训, 也 是 国 内 第 一 家 开 展 Hadoop 云 计 算 的 培

白 皮 书 英 特 尔 IT 部 门 实 施 Apache Hadoop* 英 特 尔 分 发 版 软 件 的 最 佳 实 践 目 录 要 点 概 述...1 业 务 挑 战...2 Hadoop* 分 发 版 注 意 事 项...3 Hadoop* 基 础 架 构 注 意 事 项

基于ECO的UML模型驱动的数据库应用开发1.doc

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

合集

untitled

untitled

PPBSalesDB.doc

目 录 1 不 断 开 发 工 具 以 管 理 大 数 据 Hadoop* 简 介 : 支 持 从 大 数 据 中 获 得 出 色 价 值 的 可 靠 框 架 大 数 据 技 术 的 行 业 生 态 系 统 在 关 键 组 件 中 实 现 平 衡...

FileMaker 15 ODBC 和 JDBC 指南

使用SQL Developer

ABOUT ME AGENDA 唐建法 / TJ MongoDB 高级方案架构师 MongoDB 中文社区联合发起人 Spark 介绍 Spark 和 MongoDB 案例演示

untitled

RUN_PC連載_12_.doc

ebook 96-16

回滚段探究

ebook46-23

教 学 目 标 描 述 主 要 数 据 库 对 象 创 建 表 描 述 列 定 义 时 可 用 的 数 据 类 型 改 变 表 的 定 义 删 除 改 名 和 截 断 表 描 述 每 个 DML 语 句 插 入 行 到 表 中 更 新 表 中 的 行 从 表 中 删 除 行 描 述 约 束 创 建

支付宝2011年 IT资产与费用预算

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更

RunPC2_.doc

untitled

深入理解otter

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

RUN_PC連載_8_.doc

Hive:用Java代码通过JDBC连接Hiveserver

作业参考答案

untitled

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

SQL Server SQL Server SQL Mail Windows NT

<4D F736F F D F6F70B4F3CAFDBEDDBCB0BAA3C1BFCAFDBEDDCDDABEF2D3A6D3C3B9A4B3CCCAA6C5E0D1B5B0E056312E332E646F63>

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

untitled

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f

11.2 overview

csg(1_29)cs.p65

幻灯片 1

WinMDI 28

epub83-1

RxJava

untitled

ebook 165-5

x MapReduce A Italic URL Constant width Constant width bold Constant width italic 這個圖示代表提示或建議 這個圖示代表一般註解

第一章

Microsoft Word 電腦軟體設計.doc

Microsoft Word - SupplyIT manual 3_cn_david.doc

臺銀人壽「98年九至十一職等人員甄試」

一步一步教你搞网站同步镜像!|动易Cms

untitled

PowerPoint Presentation

ac2017-joeyguo-2.0.key

PowerPoint 簡報

Oracle高级复制冲突解决机制的研究

f2.eps

Guide to Install SATA Hard Disks

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

Microsoft Word - template.doc

USING MAYA ANIMATION Keyset set Maya sets partitions MEL MEL copykey cutkey pastekey scalekey snapkey keytangent bakeresults MEL Command Reference Edi

PowerPoint Presentation

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

Microsoft Word - 10 练坤梅.doc

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

"航海王"人物人格特質探究doc

untitled

Text 文字输入功能 , 使用者可自行定义文字 高度, 旋转角度 , 行距 , 字间距离 和 倾斜角度。

自动化接口

季刊9web.indd

電機工程系認可證照清單 /7/1

三. 发现表被删除, 开始着手解决 1. 该表所在表空间离线 ( 确保删除表所在位置不会被重写 ) SQL> alter tablespace raw_odu offline; Tablespace altered. 2. 通过 logmnr, 找出被删除的数据 data _object _id 1

建 立 数 据 库 档 案 用 sqlite3 建 立 数 据 库 的 方 法 很 简 单, 只 要 在 shell 下 键 入 ( 以 下 $ 符 号 为 shell 提 示 号, 请 勿 键 入 ): $ sqlite3 foo.db 如 果 目 录 下 没 有 foo.db,sqlite3 就

全国计算机技术与软件专业技术资格(水平)考试

2013_6_3.indd

目录 1 本期内容 系统管理 连接 MySQL 修改新密码 增加新用户 启动停止 MySQL 数据库操作 库操作 表操作... 5

"+handlermethod.getbean().getclass().getname()); public void aftercompletion(httpservletrequest req, HttpServletResponse resp, Object handler, Excepti

PowerPoint Presentation

ebook 185-6

Microsoft PowerPoint - Lecture7II.ppt

Microsoft Word - 11.doc

NTSE: Non-Transactional Storage Engine MySQL InnoDB 10 InnoDB +Memcached 5 50% / K C++

Spark读取Hbase中的数据

软件概述

Power Systems

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Microsoft Word - InoTouch Editor编程软件手册 doc

Chemcad.doc

Microsoft PowerPoint - string_kruse [兼容模式]

Transcription:

Sqoop Intro... 2 Sqoop Tools... 2 Sqoop 可 用 工具... 3 Sqoop-import... 3 Common arguments... 4 Validation arguments More Details... 4 Import control arguments... 5 Parameters for overriding mapping... 6 Incremental import arguments... 6 Output line formatting arguments... 6 Input parsing arguments... 6 Hive arguments... 7 语法样例例... 7 Sqoop-import-all-tables... 8 语法样例例... 9 Sqoop-export... 9 Export control arguments... 10 INSERT vs UPDATE... 10 语法样例例... 11 Sqoop-eval... 11 SQL evaluation arguments... 11 语法样例例... 11 Sqoop-list-databases... 12 语法样例例... 12 Sqoop-list-tables... 12 语法样例例... 12 其他... 12

Sqoop Intro Sqoop 工具是设计 用于在传统关系型数据库 (RDBMS) 或者 大型机 (mainframe) 与 Hadoop 平台之间做数据传输 你可以使 用 Sqoop 从关系型数据库如 Oracle MySQL, 通过 MapReduce 框架, 将其导 入数据到 Hadoop 分布式 文件系统, 之后再导出数据到关系型数据库 Sqoop Tools Sqoop 是 一组相关 工具的集合 使 用 Sqoop, 需要指定 工具名称和相关 工具参数 sqoop tool-name [tool-arguments]

Sqoop 可 用 工具 codegen create-hive-table eval export help 生成与数据库记录交互的代码 往 hive 中导 入表定义 执 行行 一条 SQL 语句句并显示结果 将 一个 HDFS 目录的内容导出到 一张数据库表中 列列出可 用的命令 import 将 一张表的内容从数据库导 入到 HDFS 中 import-all-tables 将 一个数据库的所有表导 入到 HDFS 中 import-mainframe 将 大型机的数据集导 入到 HDFS 中 job list-databases list-tables merge metastore version 工作于已保存的作业 列列出 一台服务器器上所有可 用的数据库 列列出 一个数据库中所有可 用的表 将增量量导 入的结果进 行行合并 运 行行 一个独 立的元数据库 显示版本信息 如果希望查询具体 工具的帮助信息, 可以使 用类似以下的命令 sqoop help codegen Sqoop-import Import 工具, 将 一张单独的表从 RDBMS 中导 入到 HDFS 表中的每 行行数据, 在 HDFS 中显示为每 一条单独的记录 记录可以保存为 文本 文件 ( 一 行行 一条记录 ), 或者为 二进制 文件, 如 Avro 或者 SequenceFiles

Common arguments --connect <jdbc-uri> --connection-manager <class-name> --driver <class-name> --hadoop-mapred-home <dir> --help --password-file 指定 JDBC 连接串串 指定使 用的连接管理理类 手动指定使 用的 JDBC 驱动类 使 用指定的 目录覆盖 $HADOOP_MAPRED_HOME 全局变量量 打印使 用帮助 设置包含认证密码 文件的路路径 -P 从控制台读取密码 --password <password> --username <username> --verbose --connection-param-file <filename> --relaxed-isolation 设定认证密码 设定认证 用户 作业 工作时打印更更多的详细信息 设定 一个包含 JDBC 连接串串参数的属性 文件 可选, 替代在命令 行行中输 入连接串串信息 设置连接的事务隔离, 可以为 mapper 做未提交读 Validation arguments More Details --validate --validator <class-name> --validation-threshold <class-name> --validationfailurehandler <classname> 启动数据复制的校验功能, 仅 支持单表拷 贝 指定使 用的校验器器的类 指定使 用的校验器器阈值的类 指定使 用的校验器器错误处理理的类

Import control arguments --append --as-avrodatafile --as-sequencefile 往 HDFS 中已存在的 目录中添加数据 导 入的数据保存为 Avro 数据 文件 导 入的数据保存为 SequenceFiles 文件 --as-textfile 导 入的数据保存为平 面 文件 ( 默认 ) --as-parquetfile --boundary-query <statement> --columns <col,col,col > --delete-target-dir --direct --fetch-size <n> --inline-lob-limit <n> -m,--num-mappers <n> -e,--query <statement> --split-by <columnname> --autoreset-to-onemapper --table <table-name> --target-dir <dir> --warehouse-dir <dir> --where <where clause> -z,--compress 导 入的数据保存为 Parquet 文件 边界查询 用于创建分割 具体来说, 根据指定的字段, 查询其最 大最 小值, 用来决定 import 的并发数 指定表中需要导 入的具体字段 Import 时不不指定该参数, 将导 入全部字段 导 入过程中, 删除已存在的 目标 目录 如果数据库 支持, 采 用直连的 方式连接数据库 从数据库 一次性读取多 大的实体数量量 为 一个内联的 LOB 大 小设置最 大值 使 用 N 个 map 进 行行并发导 入 导 入 SQL 语句句查询的结果集 指定 用于分割 工作单元的字段 字段 一般为表的主键 不不能与 --autoreset-to-one-mapper 同时使 用 当表不不存在主键, 也没有提供 用于分割 工作单元的字段时, 考虑使 用该参数 不不能与 --split-by 同时使 用 表名 指定 HDFS 的 目标 目录 指定 HDFS 目标的 父级 目录 导 入过程中指定的 where 子句句 启 用压缩 --compression-codec <c> 为 Hadoop 指定压缩 用编码 ( 默认 gzip) --null-string <null-string> --null-non-string <nullstring> 为字符串串字段指定 null 值 如果未指定, 默认 用 null 字符串串表示空值 为 非字符串串字段指定 null 值 如果未指定, 默认 用 null 字符串串表示空值

Parameters for overriding mapping --map-column-java <mapping> --map-column-hive <mapping> 为配置的列列名, 自定义 SQL 到 Java 的数据类型 为配置的列列名, 自定义 SQL 到 hive 的数据类型 Incremental import arguments --check-column (col) --incremental (mode) --last-value (value) 指定待检查的列列, 用于决定是否导 入的依据 不不能指定数据类型为字符串串 (CHAR/NCHAR/VARCHAR/VARNCHAR/ LONGVARCHAR/LONGNVARCHAR) 的字段 指定 sqoop 以何种 方法识别新的数据 有效模式分别是 append 和 lastmodified 两种 指定前次导 入时, 检查列列的最 大值 Output line formatting arguments Output 指数据保存在 HDFS 上的格式 --enclosed-by 设置字段封闭符 --escaped-by --fields-terminated-by --lines-terminated-by --mysql-delimiters --optionally-enclosed-by 设置转义符 设置字段分隔符 设置 行行分隔符 使 用 MySQL 默认的分隔符设置 :fields:, lines: \n escapedby: \ optionally-enclosed-by: ' 设置可选的封闭符 Input parsing arguments 指输 入流的数据格式

--input-enclosed-by --input-escaped-by --input-fieldsterminated-by --input-lines-terminatedby --input-optionallyenclosed-by 设置输 入字段的封闭符 设置输 入流的转义符 设置输 入流的字段分隔符 设置输 入流的 行行分隔符 设置输 入流的可选封闭符 Hive arguments --hive-home <dir> --hive-import --hive-overwrite --create-hive-table --hive-table <tablename> --hive-drop-importdelims --hive-delimsreplacement --hive-partition-key --hive-partition-value <v> --map-column-hive <map> 使 用 自定义 目录路路径, 覆盖 $HIVE_HOME 全局变量量 将表导 入 hive( 如果没有指定分隔符, 则使 用 hive 的默认设置 ) 覆盖 hive 表中已存在的数据 创建 hive 表, 如果设置该参数, 那么当 hive 中已经存在相应表时, 作业会失败 默认不不开启该参数 设置导 入 hive 时的表名 导 入 hive 时, 从字符串串字段中丢弃 \n \r 和 \01 字符 导 入 hive 时, 从字符串串字段中将 \n \r 和 \01 字符替换成 用户指定的字符 指定 hive 表的分区键 指定本次作业中,hive 表的分区键的值 为配置的列列名, 自定义 SQL 到 hive 的数据类型 语法样例例 一个基本导 入操作, 将 crop 数据库中 employee 表导 入 sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES 一个包含登录的导 入

--username SomeUser -P Enter password: (hidden) 从 employee 表中选择指定的字段 --columns "employee_id,first_name,last_name,job_title" 控制导 入过程的并发度 ( 指定 8 个并 行行任务 ) -m 8 将数据保存成 SequenceFiles, 并设置已 生成的类名 com.foocorp.employee --class-name com.foocorp.employee --as-sequencefile 在 文本模式导 入中, 指定分隔符 --fields-terminated-by '\t' --lines-terminated-by '\n' \ --optionally-enclosed-by '\"' 将数据导 入进 hive --hive-import 只导 入新 用户 --where "start_date > '2010-01-01'" 改变默认的分割字段 --split-by dept_id 执 行行对新数据的增量量导 入, 之前已导 入表中的前 10 万数据 sqoop import --connect jdbc:mysql://db.foo.com/somedb --table sometable \ --where "id > 100000" --target-dir /incremental_dataset --append 对导 入的表进 行行校验, 校验表中的记录数和已复制到 HDFS 中的记录 行行数 sqoop import --connect jdbc:mysql://db.foo.com/corp \ --table EMPLOYEES --validate Sqoop-import-all-tables Sqoop-import-all-tables 是从 RDBMS 中将 一组表导 入到 HDFS 的 工具 每张表的数据在 HDFS 中都会以单独 文件夹保存 要使 用 Sqoop-import-all-tables 工具, 必须符合以下条件 : 每张表都必须有 一个主键, 否则必须使 用 --autoreset-to-one-mapper 参数 必须导 入每张表的所有字段 不不能为表指定 非默认的分割字段 ( 即主键以外的字段 ), 也不不能通过 where 子句句添加任何条件

Sqoop-import-all-tables 在参数设置上与 sqoop-import 工具基本 一致, 但 --table, --splitby, --columns 和 --where 参数对 Sqoop-import-all-tables 无效 另外,--exclude-tables 参数仅能在 Sqoop-import-all-tables 中使 用 语法样例例 导 入 crop 数据库中所有表 sqoop import-all-tables --connect jdbc:mysql://db.foo.com/corp Sqoop-export Sqoop-export 工具, 是 用来将 HDFS 上 一组数据导出到 RDBMS 中 数据库中的 目标表必须已经存在 HDFS 上输 入 文件会被读取, 并根据 用户指定的分隔符进 行行解析和 生成 一组对应的记录 默认的操作是将这些源数据转换成 一组 INSERT 语句句, 用以将记录插 入到数据库中 在 UPDATE MODE 中,Sqoop 将会 生成 UPDATE 语句句 用来替换数据库中已经存在的记录 而在 CALL MODE 中,Sqoop 将会为每条记录调 用数据库中的存储过程

Export control arguments --columns <col,col,col > --direct --export-dir <dir> -m,--num-mappers <n> --table <table-name> --call <stored-procname> --update-key <col-name> --update-mode <mode> --input-null-string <nullstring> --input-null-non-string <null-string> --staging-table <stagingtable-name> --clear-staging-table --batch 指定导出到表的字段 使 用直连快速导出的 方式 指定导出源的 HDFS 路路径 指定并 行行导出时的并 行行度 指定导出的 目标表名 调 用存储过程 指定 用于做更更新的固定字段 如果是多个字段组合, 可以 用, 逗号进 行行排列列 指定更更新模式 有效值为 updateonly( 默认 ) 和 allowinsert 指定字符串串字段的空值字符 指定 非字符串串字段的空值字符 指定 一张临时表 数据会 首先加载到临时表, 在插 入到 目标表 是否清理理临时表中已有的数据 为底层的执 行行语句句使 用批处理理模式 INSERT vs UPDATE 默认情况下,sqoop-export 会附加记录到 目标表 ; 每 一 行行输 入记录将会转换为 INSERT 语句句, 以便便为 目标数据库表添加 行行数 如果表拥有约束 ( 如主键约束 ) 并包含了了数据, 那么必须 小 心对待这些插 入语句句, 避免违反约束规则 如果 INSERT 语句句失败, 那么导出进程也会失败 这种模式的主要意图是将数据导出到 一张新的 空的表中 如果指定 --update-key 参数,sqoop 将会修改数据库中已存在的数据集 每 一 行行输 入记录将被对待为 UPDATE 语句句, 用于修改存在的记录 UDATE 语句句将依据 --update-key 参数指定的字段来决定更更新与否 如果 UPDATE 语句句没有修改任何记录, 这将不不会被考虑为 一个错误, 导出过程将会持续 ( 换句句话说, 基于 UPDATE 模式的导出, 不不会将新数据插 入到数据库中 ) 同样的, 如果 --update-key 指定的字段并 非唯 一的, 那么 一条语句句可能更更新多条记录, 这种情况同样不不会被 sqoop 检测到 指定的 --update-key 参数, 可以 用逗号分隔的多个字段组合 这种情况下,sqoop 只有匹配

上所有的关键字才会更更新存在的记录 根据 目标数据库的情况, 如果你希望在数据库中更更新存在的 行行和插 入未存在的 行行, 那么你可能会为 --update-mode 指定 allowinsert 模式 语法样例例 一个基本的导出操作, 到表 bar sqoop export --connect jdbc:mysql://db.example.com/foo --table bar \ --export-dir /results/bar_data 在导出中为每 行行数据调 用名为 barproc 的存储过程 sqoop export --connect jdbc:mysql://db.example.com/foo --call barproc \ --export-dir /results/bar_data Sqoop-eval Sqoop-eval 工具允许向数据库执 行行 一条简单的查询, 并将结果打印到控制台 这个功能允许 用户预览将要导 入的数据 经实测, 只要是有效的 SQL 查询语句句都可以通过该 工具执 行行, 如 UPDATE INSERT DELETE TRUNCATE 等操作 所以官 网特此警告不不要将该 工具 用于 生产环境 SQL evaluation arguments -e,--query <statement> 执 行行 一条 SQL 语句句 语法样例例 从 employee 表中查询 10 条语句句 sqoop eval --connect jdbc:mysql://db.example.com/corp \ --query "SELECT * FROM employees LIMIT 10" 往 foo 表中插 入 一条记录 sqoop eval --connect jdbc:mysql://db.example.com/corp \ -e "INSERT INTO foo VALUES(42, 'bar')"

Sqoop-list-databases 该 工具 用于列列出 一台数据库服务器器上所有的数据库模式 语法样例例 列列出 MySQL 服务器器上的所有数据库模式 sqoop list-databases --connect jdbc:mysql://database.example.com/ information_schema employees Sqoop-list-tables 该 工具类似 sqoop-list-databases 工具, 用于列列出数据库中的所有表 语法样例例 列列出 crop 数据库中的所有表 sqoop list-tables --connect jdbc:mysql://database.example.com/corp employees payroll_checks job_descriptions office_supplies 通过 --schema 参数, 列列出指定模式下的所有表 sqoop list-tables --connect jdbc:postgresql://localhost/corp --username name -P -- --schema payrolldept employees expenses 其他 本 文仅阐述了了 工作中常 用的 sqoop 功能与 方法, 诸如其他的 一些特性和 方法, 如 HBASE 相关 HCATALOG 集成, 请 自 行行前往官 网查询 http://sqoop.apache.org/docs/1.4.6/sqoopuserguide.html