csv格式导入

1.介绍说明

  • 多线程的方式,读取指定目录下json格式文件,导入程序分别将事件数据导入方舟事件数据Topic、用户数据导入方舟用户数据Topic;

  • 已经读取完成的文件不会重复读取;

  • 自动解析csv表头,作为字段属性名称;

  • 可以对导入字段做字段名映射。

1、单个文件同时只能由一个线程读取。

2、文档中都是以集群版为例切换机器或连接服务,如果是单机版,将对应的ark2/ark3改为ark1即可。

3、导入文件需要以event_和profile_开头。

4、csv文件内第一行必须为表头。

建议:为保证正式项目数据导入的准确性,在数据导入正式项目前,建议先创建一个测试项目,将测试数据导入测试项目中,测试数据导入完成并且数据校验无误后,即可删除测试项目,将正式数据导入到正式项目,进而保证了数据导入的准确性。

2.运行环境

导入工具需要在JAVA环境中运行,单机版和集群版都可以使用。

1、导入工具需要在方舟部署服务器/可访问方舟服务器上的机器上使用;

2、为了避免网络异常、数据传输速度等造成数据导入慢等问题,建议数据导入工作在方舟部署的任一服务器使用

3.使用方法

csv文导入工具通过父命令+子命令的形式直接启动。

3.1.参数说明

参数名称

参数示例

参数说明

是否必传

-k

31abd9593e9983ec

项目appKey

-d

/data/tmp

需要导入的csv文件的导入目录

-c

/data/tmp/csv_import.properties

指定配置文件绝对路径,

配置文件名为csv_import.properties

--help/-h

显示csv文件导入帮助文档

如果csv文件列已经包含了xwho,xwhen,xwhat,可以不用指定配置文件直接导入,如果数据中不含这3个字段,则需要添加配置文件。

3.2.配置文件参数说明

参数名称

参数示例

参数说明

是否必传

event.attr.mapping

user_id:xwho,update:xwhen

将csv事件字段列名映射成方舟的字段名,字段映射中间用冒号分隔,多个字段映射中间用逗号分隔

profile.attr.mapping

user_id:xwho,update:xwhen

将csv用户字段列名映射成方舟的字段名,字段映射中间用冒号分隔,多个字段映射中间用逗号分隔

event.attr.to.number

height,length

将csv事件文件的指定列转换成数值类型,多个字段用逗号分隔

profile.attr.to.number

age,grade

将csv用户文件的指定列转换成数值类型,多个字段用逗号分隔

kafka.metadata.broker.list

ark1:9092,ark2:9092,ark3:9092

kafka的主机名和端口号

is.login.data

true

导入数据是否属于登录数据

3.3.示例展示

将/data/tmp/20201027/csv_import/文件夹下的事件数据导入项目test123321。

arksh csv-import -k test123321 -d /data/tmp/20201027/csv_import