菜单

历史数据导入导出

本文档所描述的内容属于神策分析的高级使用功能,涉及较多技术细节,仅适用于历史数据导出导入,且环境数据总量不超过 10 亿条的客户参考。

如果您需要把数据迁移到其他新环境,或者环境数据总量超过 10 亿条,那么请联系您的客户成功经理或者项目经理购买数据迁移服务。如果对文档内容有疑惑,请咨询神策值班同学获取协助。

概述

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

数据导入导出准备

请检查您环境里事件属性、用户属性是否有神策保留字段,如果包含保留字段,请联系神策值班同学处理。否则会出现保留字段入库失败的情况。保留字段

数据导出

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

导出用户数据

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

curl 'http://{host}:{port}/api/v3/analytics/v1/model/sql/query' \
--header 'api-key: {apiKey}' \
--header 'sensorsdata-project:{projectName}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "sql":"SELECT cast(id as string),first_id,second_id FROM users /*MAX_QUERY_EXECUTION_TIME=1800*/",
    "limit":"10",
    "request_id":"123123123"
}' >> profile.json

导出的数据样例:

{"code":"SUCCESS","request_id":"ea5d8d6c448b45f3bf15560aa9456dc3","data":{"data":["653088","653088","-9221149192968257218"],"columns":["second_id","first_id","cast(id as string)"]}}
{"code":"SUCCESS","request_id":"ea5d8d6c448b45f3bf15560aa9456dc3","data":{"data":["509825","509825","-9220670589977141579"],"columns":["second_id","first_id","cast(id as string)"]}}
{"code":"SUCCESS","request_id":"ea5d8d6c448b45f3bf15560aa9456dc3","data":{"data":["359861","359861","-9220452992068540918"],"columns":["second_id","first_id","cast(id as string)"]}}

导出事件数据

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

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

curl 'http://{host}:{port}/api/v3/analytics/v1/model/sql/query' \
--header 'api-key: {apiKey}' \
--header 'sensorsdata-project:{projectName}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "sql":"SELECT event,time,distinct_id,$lib FROM events where date='2025-9-15' /*MAX_QUERY_EXECUTION_TIME=1800*/",
    "limit":"10",
    "request_id":"123123123"
}' >> event.json

导出的数据样例:

{"code":"SUCCESS","request_id":"99ae756260284b3986ce8e2204dd4eb2","data":{"data":["Java","718880","2025-09-15 17:15:03.381","issue_create_operation"],"columns":["$lib","distinct_id","time","event"]}}
{"code":"SUCCESS","request_id":"99ae756260284b3986ce8e2204dd4eb2","data":{"data":["Java","718859","2025-09-15 16:23:39.998","issue_create_operation"],"columns":["$lib","distinct_id","time","event"]}}
{"code":"SUCCESS","request_id":"99ae756260284b3986ce8e2204dd4eb2","data":{"data":["Java","718789","2025-09-15 13:51:50.231","issue_create_operation"],"columns":["$lib","distinct_id","time","event"]}}

数据格式清洗

通过上述方法导出的数据,可以使用神策提供的几种导入工具 导入工具 重新导入到神策分析系统。

 

数据导入

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

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

导入 users 表中的数据

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

导入 events 表中的数据

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

上一个
使用 JDBC 进行数据访问
下一个
订阅实时数据到 Kafka
最近修改: 2025-09-16