海纳嗨数-帮助中心
dataimporter
一、概述
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
- 执行导入“事件”命令如下:其中csv_event是命令类型,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
- 执行导入“用户属性”命令如下:其中csv_profile是命令类型,csv_profile.conf是配置信息
作者:刘建雄 创建时间:2022-08-05 10:47
最后编辑:邓昊 更新时间:2024-10-31 14:08
最后编辑:邓昊 更新时间:2024-10-31 14:08