一、概述

dataimporter用于将一些符合数据格式的外部数据导入到海纳云分析系统中,目前支持的格式有CSV表格,MySQL数据库,ORACLE数据库,nginx日志,json格式数据。

二、环境要求

1、python环境3.4及以上
2、如需导入数据库数据,需要预先install相应的依赖包

三、下载安装

  • 下载 dataimporter工具包:资源下载,解压缩即可使用

四、参数配置

4.1 公共参数

参数名 别名 是否必填 描述
–url -l 和 output_file 选一个必填 数据接收地址
–output_file -O 和 url 选一个必填 输出的文件名,输出每行是一个符合格式的 JSON。
–project -j 指定的 project 名,默认是 default
–skip_cnt -c 第一次运行请忽略,如果运行失败,可以使用此配置指定跳过开头多少行
–debug -D 如果指定了就是使用 debug 模式,不会导入数据,只在stdout 显示数据,参见调试模式
–quit_on_error -Q 如果选中,则出现一条错误日志就会退出
–log_level -lv 日志输出最小等级,默认为 DEBUG

4.2 event公共参数

参数名 别名 是否必填 描述
–account_id_from -df 登录状态下(is_login)需要填写 指定列作为 account_id
–anonymous_id_from 指定列作为匿名 ID,与 account_id 不能同时为空
–is_login 是否登录,默认为否
–event_from -ef 和 event_default 选一个必填 指定列作为事件名
–event_default -ed 和 event_from 选一个必填 指定固定字符串作为事件名
–timestamp_from -tf 和 timestamp_default 选一个必填 指定列作为 time
–timestamp_default -td 和 timestamp_from 选一个必填 指定固定时间字符串作为 time
–timestamp_format -tf 和 timestamp_from 一起使用,通过此配置指定时间格式。默认是%Y-%m-%d %H:%M:%S

4.3 profile公共参数

参数名 别名 是否必填 描述
–account_id_from -df 登录状态下(is_login)需要填写 指定列作为 account_id
–anonymous_id_from 指定列作为匿名 ID,与 account_id 不能同时为空
–is_login 是否登录,默认为否

4.4 signup公共参数

参数名 别名 是否必填 描述
–account_id_from 指定列作为登录 ID
–anonymous_id_from 指定列作为匿名 ID

4.5 csv参数

参数名 别名 是否必填 描述
–filename -f CSV 文件路径。
–property_list -pl 用逗号分割选取的 property,举例 -p name,time 将会将 name 和 time 两列作为 property 导入。如果不填写则表示全部作为 property 导入。
–skip_identify -i 对应的列将不会做自动类型判断,举例配置–skip_identify name,id 后将会对 name 和 id 不做类型判断,完全作为 string 导入。如果不填写则表示全部的选中列都会自动做类型判断。
–ignore_value 指定某些值为空,比如指定 –ignore_value null 则所有的 null 都被认为是空值。
–csv_delimiter CSV 文件的列分隔符,默认为 ‘,’,只接受单字符参数,也可以传 \ + ascii的数字,比如 \9 表示是 \t 。
–csv_quotechar CSV 文件的引用字符,用于指定CSV字符串的开始和结尾,默认为 ‘“‘,只接受单字符参数,也可以传 \ + ascii的数字,比如 \9 表示是 \t 。
–csv_prefetch_lines CSV 文件预读行数,预读用于判断列的类型,默认为 -1,即预读整个文件。注意如果数据分布不均(比如前几行某个字段没有但是后面有)不要加这个参数。
–file_encoding 设置 CSV 文件编码格式,默认为 utf-8。
–list_type 指定属性为 list 用逗号分割选取的属性,举例–list_type list_a, list_b 将会将 list_a 和 list_b 两列作为 list 格式导入。list_type:list_a, list_b

五、命令类型

命令名称 描述
csv_profile 将 CSV 格式文件转化成用户属性导入
csv_event 将 CSV 格式文件转化成事件导入
csv_signup 将 CSV 格式文件转化成用户关联关系导入

六、导入说明

6.1 导入事件

1、准备数据,并检查数据格式
假设有以下 csv 文件描述了上面的示例用户事件 ( 参考代码包下 examples/events.csv ),
注意:导入前请检查用户事件数据格式,增加type(事件类型)列,默认值是track;另外注意时间格式,示例:2023-02-02 12:58:32

account_id anonymous_id event type time item_id item_name item_cate
ABCDEFG-123-abc F53A58ED-E5DA-4F18-B082-7E1228746E88 page_view track 2018-05-12 13:01:11 13245 男士护耳保暖鸭舌皮帽平顶八角帽头层牛皮帽子时尚休闲 男装
ABCDEFG-456-abc F53A58ED-E5DA-4F18-B082-7E1228746E99 click_view_introduction track 2018-05-12 13:05:03 13245 男士护耳保暖鸭舌皮帽平顶八角帽头层牛皮帽子时尚休闲 男装
ABCDEFG-789-abc F53A58ED-E5DA-4F18-B082-7E1228746E66 page_view track 2018-05-13 10:20:32 23421 New Order Technique 2CD豪华版 欧版行货 全新未拆 音像
ABCDEFG-101-abc F53A58ED-E5DA-4F18-B082-7E1228746E77 page_view track 2018-05-13 20:42:53 3442 NUK安抚奶嘴宝宝防胀气安慰奶嘴乳胶迪士尼安睡型 母婴

注意:csv表格文件放在哪个目录,对应要配置在脚本的配置文件里;

2、配置脚本文件(.conf脚本文件,事件的配置文件:./conf/csv_event.conf)

配置属性如下所示:

url: http://10.0.70.92:9092/ha?project=yituiAll&token=yt888
account_id_from: account_id
anonymous_id_from: anonymous_id
event_from: event
timestamp_from: time
filename: ./examples/events_new.csv
property_list: item_id,item_name

3、执行导入命令

    • 执行导入“事件”命令如下:其中csv_event是命令类型,csv_event.conf是配置信息
      python3 data_import.py csv_event @./conf/csv_event.conf

4、 事件时间限制
导入错误时间的数据,会影响真实数据分析的准确性,因此默认情况下海纳对事件时间进行限制:
使用后端语言 SDK (如 Java、C# 等)或导入工具(如 Datax、dataimporter、Logstash + Filebeat等),需要导入历史数据,需要联系海纳运营人员,开放历史事件数据限制;

6.2 导入用户属性

1、准备数据,并检查数据格式

假设有以下 csv 文件描述了上面的示例用户事件 ( 参考代码包下 examples/profiles.csv ),
注意:导入前请检查用户属性数据格式,增加type(事件类型)列,默认值是user_set;

type account_id anonymous_id user_id gender is_member score
user_set 277 bug29 true 131
user_set 278 小武 false

注意:csv表格文件放在哪个目录,对应要配置在脚本的配置文件里;

2、配置脚本文件(.conf脚本文件)

url: http://localhost:9092/ha?project=yituiAll&token=yt888
account_id_from: account_id
anonymous_id_from: anonymous_id
filename: ./examples/profile.csv
property_list: item_id,item_name

3、执行导入命令

    • 执行导入“用户属性”命令如下:其中csv_profile是命令类型,csv_profile.conf是配置信息
      python3 data_import.py csv_profile @./conf/csv_profile.conf
作者:刘建雄  创建时间:2022-08-05 10:47
最后编辑:邓昊  更新时间:2024-10-31 14:08