• 沒有找到結果。

标题开头\u0001 (SOH) %01

2. 字段分隔符

– 数据库、NoSQL导出到CSV文件(“使用包围符”在目的端):当源端某列 数据的字符串中出现字段分隔符时,目的端可以通过开启“使用包围符”,

– CSV文件导出到数据库、NoSQL(“使用包围符”在源端):CSV文件为源的 时候,并且其中数据是被包围符括起来的,如果想把数据正确的导入到数据

这时可以在目的端指定该参数,这样会生成多个指定大小的CSV文件,避免导出 的文件过大。该参数的数据类型为整型,单位为MB。

JSON 格式

这里主要介绍JSON文件格式的以下内容:

CDM支持解析的JSON类型

记录节点

从JSON文件复制数据

1. CDM支持解析的JSON类型:JSON对象、JSON数组。

– JSON对象:JSON文件包含单个对象,或者以行分隔/串连的多个对象。

i. 单一对象JSON:

ii. 行分隔的JSON对象:

{"took" : 188, "timed_out" : false, "total" : 1000003, "max_score" : 1.0 } {"took" : 189, "timed_out" : false, "total" : 1000004, "max_score" : 1.0 }

iii. 串连的JSON对象:

{ "took": 190, "timed_out": false, "total": 1000001, "max_score": 1.0 } {

"took": 191, "timed_out": false, "total": 1000002, "max_score": 1.0 }

– JSON数组:JSON文件是包含多个JSON对象的数组。

[{ "took" : 190,

a. 示例一:从行分隔/串连的多个对象中提取数据。JSON文件包含了多个JSON 对象,例如:

{ "took": 190, "timed_out": false, "total": 1000001,

"max_score": 1.0 } {

"took": 191, "timed_out": false, "total": 1000002, "max_score": 1.0 } {

"took": 192, "timed_out": false, "total": 1000003,

took timedOut total maxScore

190 false 1000001 1.0

191 false 1000002 1.0

192 false 1000003 1.0

b. 示例二:从记录节点中提取数据。JSON文件包含了单个的JSON对象,但是 其中有效的数据在一个数据节点下,例如:

{ "took": 190, "timed_out": false, "hits": {

ID SourceName SourceBooks

650612 tom ["chinese","english","math"]

650616 tom ["chinese","english","math"]

650618 tom ["chinese","english","math"]

c. 示例三:从JSON数组中提取数据。JSON文件是包含了多个JSON对象的JSON 数组,例如:

took timedOut total maxScore

190 false 1000001 1.0

191 false 1000002 1.0

d. 示例四:在解析JSON文件的时候搭配转换器。在示例二前提下,想要把 hits.max_score字段附加到所有记录中,即以如下格式写入到数据库中:

ID SourceNam

e SourceBooks MaxScore

650612 tom ["chinese","english","math

"] 1.0

650616 tom ["chinese","english","math

"] 1.0

650618 tom ["chinese","english","math

"] 1.0

则需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为

“JSON对象”,并且指定记录节点为“hits.hits”,然后在作业第二步添加 转换器,操作步骤如下:

i. 单击 添加字段,新增一个字段。

1-30 添加字段

ii. 在添加的新字段后面,单击 添加字段转换器。

1-31 添加字段转换器

iii. 创建“表达式转换”的转换器,表达式输入”1.0”,然后保存。

1-32 配置字段转换器

另外,可以设置超时时间,在超时时间内,CDM会周期去查询标识文件是否存

1. 数据库的数据导出到CSV文件,由于数据中含有分隔符逗号,造成导出的CSV文件 中数据混乱。 出到CSV格式的文件中,然后再使用CDM将导出的CSV文件导入到MRS HBase,

发现导出的CSV文件中出现了数据被截断的情况。

解决方法:指定换行符。

在使用CDM将MySQL的表数据导出到CSV文件时,指定目的端的换行符为

“%01”(确保这个值不会出现在字段值中),这样导出的CSV文件中换行符就 是“%01”。然后再使用CDM将CSV文件导入到MRS HBase时,指定源端的换行 符为“%01”,这样就避免了数据被截断的问题。

2 参考案例:贸易数据统计与分析

相關文件