本文档所描述的内容属于神策分析的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。

1. 概述

神策分析开始为用户提供数据自助迁移的功能,即通过 API 导出原始神策分析环境中的历史数据,然后通过导入工具把历史数据导入到新建神策分析环境中。

通过 API 导出可以直接用于导入的数据格式,神策分析版本号需大于 1.*.3338 。如果低于此版本的用户仍想自助迁移数据,需联系神策的技术支持人员。

2.  数据导出

使用查询 API 通过编写 SQL 的方式,导出 users 表(含 Track Signup 数据)和 events 表中的数据(如果是 1.15.1646 及之后的神策系统版本,且使用了神策的 items 表功能,也需要导出 items 表中的数据),另外需要注意的是,SQL 在执行过程中,默认超过 10 分钟之后会被系统强制杀死,
如果希望增大超时时间可以在 SQL 语句之后添加 MAX_QUERY_EXECUTION_TIME 参数控制(时间单位为秒, 建议最大超时时长不要超过 1800,以免影响系统稳定性 )。

使用 curl 导出 users 表的例子如下:

curl 'https://saasdemo.cloud.sensorsdata.cn/api/sql/query?token=******&project=default' \
-X POST \
--data-urlencode "q=SELECT * FROM users /*MAX_QUERY_EXECUTION_TIME=1800*/" \
--data-urlencode "format=profile_json" \
>> profile.json
CODE

在导出 events 表数据时,建议通过 date 字段按天导出,这样可以提高 SQL 的查询速度。

使用 curl 导出 events 表的例子如下:

curl 'https://saasdemo.cloud.sensorsdata.cn/api/sql/query?token=******&project=default' \
-X POST \
--data-urlencode "q=SELECT * FROM events where date = '2017-01-01' /*MAX_QUERY_EXECUTION_TIME=1800*/" \
--data-urlencode "format=event_json" \
>> event.json
CODE

3. 数据导入

在导入数据的过程中,应遵循以下步骤,否则会导致 Track Signup 逻辑混乱。

  • 先导入 users 表中的数据
  • 再导入 events 表中的数据

3.1. 导入 users 表中的数据

请不要将文件内容顺序打乱。

3.2. 导入 events 表中的数据

使用任意一种导入工具导入即可。