# csv格式导入 ## 1.介绍说明 * 多线程的方式,读取指定目录下json格式文件,导入程序分别将事件数据导入方舟事件数据Topic、用户数据导入方舟用户数据Topic; * 已经读取完成的文件不会重复读取; * 自动解析csv表头,作为字段属性名称; * 可以对导入字段做字段名映射。 >[danger] > >1、单个文件同时只能由一个线程读取。 > >2、文档中都是以集群版为例切换机器或连接服务,如果是**单机版**,将对应的ark2/ark3**改为ark1**即可。 > >3、导入文件需要以event\_和profile\_开头。 > >4、csv文件内第一行必须为表头。 >[info] >**建议**:为保证正式项目数据导入的准确性,在数据导入正式项目前,建议先创建一个测试项目,将测试数据导入测试项目中,测试数据导入完成并且数据校验无误后,即可删除测试项目,将正式数据导入到正式项目,进而保证了数据导入的准确性。 ## 2.运行环境 导入工具需要在JAVA环境中运行,单机版和集群版都可以使用。 >[info] >1、导入工具需要在方舟部署服务器/可访问方舟服务器上的机器上使用; 2、为了避免网络异常、数据传输速度等造成数据导入慢等问题,**建议**数据导入工作在**方舟**部署的任一**服务器**上**使用**。 ## 3.使用方法 csv文导入工具通过父命令+子命令的形式直接启动。 ### 3.1.参数说明 | 参数名称 | 参数示例 | 参数说明 | 是否必传 | | --------- | ------------------------------- | ---------------------------------------------------- | ---- | | -k | 31abd9593e9983ec | 项目appKey | 是 | | -d | /data/tmp | 需要导入的csv文件的导入目录 | 是 | | -c | /data/tmp/csv_import.properties | <p>指定配置文件绝对路径,</p><p>配置文件名为csv_import.properties</p> | 否 | | --help/-h | 无 | 显示csv文件导入帮助文档 | 否 | >[info]如果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 ```