跳到主要内容
版本:4.1

离线数据导出

简介

GrowingIO 为开放架构,采集上报的用户数据支持离线导出到客户的自建数仓或数据湖系统,以满足在客户在自身系统中做数据集成应用。

离线数据导出需要较充裕的磁盘空间,它是默认关闭的。若需开启,请联系 GrowingIO 的技术支持。

能力边界和约束

  • 用户数据由系统定时生成为文件供下载使用,不支持直连数仓导出数据。
  • 系统生成文件的启动时间为每日凌晨,生成完毕的时间跟数据量有关,建议观察稳定后再做下游的使用配置。
  • 每天定时生成的文件,按种类分为 5 组压缩文件:事件明细、用户 ID、用户属性、用户标签和用户分群,每组文件在其文件夹中存储。
  • 用户 ID/属性/标签解压后的文件均是以 gio_id(GrowingIO 生成的用户编号)为首列(主键)的两列数据,第二列是用户字段的值。比如用户属性为生日的文件,第二列即是用户的生日值。这样设计的优点是文件内容的结构稳定,更接近数据的本质,使用灵活;缺点是在用户宽表的使用场景中,需要将所需字段的文件按主键关联整合成宽表存储,有一定的 ETL 工作量。
  • 事件明细的数据是 T+1 的增量数据,即今天凌晨生成的文件内容是昨日 0 点起至 23 点末的事件;用户 ID/属性/标签/分群则为全量用户数据。

导出文件的下载与使用

导出文件所在的 FTP 路径

系统每日启动导出任务,将在 FTP 固定路径下生成不同项目名称的前一日的日期名称的文件夹。

例子:品牌零售项目,在 2021-12-02当天,生成的离线数据文件夹为:/ftp/admin/gio_data/v1/2021-12-01/${namespace}/${projectId}

连接 FTP 的凭证信息请联系 GrowingIO 技术支持。

获取 namespace

namespace的取值默认为1,如果找不到离线数据文件请联系 GrowingIO 技术支持。

获取 projectId

您可以在进入分析云项目后,在浏览器地址栏中获取当前项目的projectId. picture projectId

数据详情

ftp 文件目录:/ftp/admin/gio_data/${日期}/${namespaceid}/${projectid}/${类型},每个日期文件夹下,均有 5 个文件组,对应不同的数据种类,如事件明细、用户属性等,具体如图: picture datapath

文件组文件夹文件列表文件数据字典
事件明细eventpart-XXXX.csv.gz见附录
用户 IDuser_iduserid/id\$anonymoususer/part-XXXX.csv.gz
user_id/id
\$basic_userId/part-XXXX.csv.gz
user_id/{其他自定义 ID}/part-XXXX.csv.gz
gio_id {用户 ID 值}
用户属性user_propsuserprops/usr{用户属性标识符}/part-XXXX.csv.gzgio_id {用户属性值}
用户标签user_tagsusertags/tag{用户标签标识符}/part-XXXX.csv.gzgio_id {用户标签值}
用户分群user_segmentsusersegments/seg{用户分群标识符}/part-XXXX.csv.gzgio_id

event类型下文件数= 当前项目下总事件量 / 500w 其他类型文件数=1

在服务器上,可以使用一些简单的 linux 命令查看导出文件的详情,以便更好地理解数据格式。

如下提供事件明细和用户属性的示例供参考:

示例 1:事件明细数据

将 FTP 文件下载到本地:

hdfs dfs -get /ftp/admin/gio_data/v1/2021-12-15/1/1/event/part* ./

压缩文件解压命令:

gunzip -d part*.csv.gz

解压后的文件:part-00000-0c57c7a1-4d4c-4b49-ba40-045b802dd6cb-c000.csv

查看文件内容命令:

head -1 part-00000-0c57c7a1-4d4c-4b49-ba40-045b802dd6cb-c000.csv

picture 1

数据字段的分隔符是\t,空字符串为英文双引号包裹。各字段的含义见附录。

示例 2:用户属性数据

将 FTP 中用户生日(属性标识符为 birthday)的文件下载到本地:

hdfs dfs -get /ftp/admin/gio_data/v1/2021-12-15/1/1/user_props/usr_birthday/part* ./

压缩文件解压命令:

gunzip -d part*.csv.gz

解压后的文件:part-00000-39d0854c-6e9b-42cc-a06a-a419975911f7-c000.csv

查看文件内容命令:

head part-00000-39d0854c-6e9b-42cc-a06a-a419975911f7-c000.csv

picture 1

数据字段的分隔符是\t,空字符串为英文双引号包裹

常见问题

Q:事件明细是否有历史数据一次性导出的方案? A:由于事件明细的每日例行定时导出任务是导出 T+1 的数据,因此在开启离线数据导出能力后,可以每日下载前一日的事件数据。若需要将历史数据一次性导出,请联系 GrowingIO 项目经理获得支持。

Q:下载压缩文件前,如何知道文件是完整的? A:每个压缩文件生成完毕后,都会在同级路径下生成名称为 _SUCCESS 的完整性校验文件,获取到该文件后再下载数据文件。

附录:事件明细文件的字段详情

序号字段含义备注
1event_key事件标识visit 事件$visit、访问事件$page、自定义事件如 paySuccess
2event_time事件接收时间示例:2021-06-01 23:59:20.912
3event_id事件 ID事件内容 hash 后的长度为 32 位的字符串,也支持导入数据中自定义 event_id 值
4event_type事件类型visit, page, custom_event 类型
5client_time事件采集时间示例:2021-06-01 23:59:20.912
6anonymous_user访问用户 ID
7user登录用户 ID
8user_key用户身份访问状态:$anonymous_user;登录状态:$basic_userId;自定义身份:自定义值
9gio_id用户编号GrowingIO id-service 服务给用户生成的唯一编号
10session会话标识
11attributes事件属性事件属性的 KV 值
12$package包名
13$platform平台标识Web
14$referrer_domain来源域名或包名
15$utm_source广告来源,标识投放的网站
16$utm_medium广告媒介或营销媒介
17$utm_campaign广告名称,产品的具体广告系列名称、标语、促销代码等
18$utm_term广告关键字,标识付费搜索关键字
19$utm_content广告内容,用于区分相似内容或同一广告内的链接。
20$ads_id广告 ID
21$key_word访问来源广告关键字(通用维度)
22$country_code国家码示例:CN
23$country_name国家名称示例:中国
24$region省份示例:江苏
25$city城市示例:南京
26$browser浏览器名称
27$browser_version浏览器版本
28$os操作系统名称
29$os_version操作系统版本
30$client_version客户端版本,移动端存在
31$channel客户端渠道来源
32$device_brand设备品牌名称
33$device_model设备型号
34$device_type设备类型0:平板 1:手机
35$device_orientation设备方向
36$resolution屏幕尺寸
37$language语言示例:zh-cn
38$referrer_type来源类型
39account_idGrowingIO 的 AI 值
40$domain域名或包名
41$ip客户端 IP 地址
42$user_agent浏览器 agent 详细信息
43$sdk_versionSDK 版本号
44$data_source_id数据源 ID