Files
twenty/packages/twenty-docs/l/zh/user-guide/data-migration/how-tos/import-data-via-api.mdx
T
github-actions[bot] e7fe435f60 i18n - docs translations (#18541)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-10 17:44:34 +01:00

177 lines
6.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 通过 API 导入数据
description: 何时以及如何使用 Twenty 的 API 进行大规模数据导入。
---
## 概览
Twenty 提供 **GraphQL** 和 **REST API**,用于以编程方式导入数据。 当 CSV 导入不适合您的数据量,或您需要自动化、定期的导入时,请使用 API。
## 何时使用 API 导入
| 场景 | 推荐方法 |
| ------------------- | --------------- |
| 少于 10,000 条记录 | CSV 导入 |
| 10,000 - 50,000 条记录 | CSV 导入(拆分为多个文件) |
| **50,000+ 条记录** | **API 导入** |
| 一次性迁移 | 两者皆可(取决于数据量) |
| **定期导入** | **API 导入** |
| **实时同步** | **API 导入** |
| **与其他系统集成** | **API 导入** |
<Note>对于包含数十万条记录的数据集,API 比多次 CSV 导入显著更快且更可靠。</Note>
## API 速率限制
Twenty 实施速率限制以确保系统稳定性:
| 限制 | 值 |
| -------------- | ------------- |
| **每分钟请求数** | 100 |
| **每次批量调用的记录数** | 60 |
| **最大吞吐量** | ~6,000 条记录/分钟 |
<Warning>
**围绕这些限制规划您的导入。**
在最大吞吐量下,导入 100,000 条记录预计约需 17 分钟。 为错误处理和重试预留缓冲时间。
</Warning>
## 开始使用
### 步骤 1:获取您的 API 密钥
1. 前往 **设置 → 开发者**
2. 点击 **+ 创建 API 密钥**
3. 为您的密钥指定一个描述性名称
4. 立即复制该 API 密钥(不会再次显示)
5. 将其安全存储
<Warning>
**请保密您的 API 密钥。**
任何获得您 API 密钥的人都可以访问并修改您的工作区数据。 切勿将其提交到代码仓库或公开分享。
</Warning>
### 步骤 2:选择您的 API
Twenty 支持两种 API 类型:
| 接口 | 最适合 | 文档 |
| ----------- | ----------------------- | -------------------------------- |
| **GraphQL** | 灵活查询、获取关联数据、复杂操作 | [API 文档](/l/zh/developers/extend/api) |
| **REST** | 简单的 CRUD 操作、熟悉的 REST 模式 | [API 文档](/l/zh/developers/extend/api) |
两种 API 都支持:
* 创建、读取、更新和删除记录
* **批量操作** — 每次调用最多创建或更新 60 条记录
**对于导入,请使用批量操作**,以在速率限制内最大化吞吐量。
### 步骤 3:规划您的导入顺序
与 CSV 导入一样,对于关联关系,**顺序很重要**:
1. **公司** 优先(无依赖)
2. **人员** 其次(可关联到公司)
3. **商机** 第三(可关联到公司和人员)
4. **任务/笔记**(可关联到以上任一项)
5. **自定义对象**(按照其依赖关系)
## 最佳实践
### 批量处理请求
* 不要逐条发送记录
* 每次 API 调用最多分组处理 **60 条记录**
* 这可在速率限制内最大化吞吐量
### 处理速率限制
* 在请求之间实施延迟(持续导入时至少 600ms)
* 达到限制时使用指数退避
* 监控 429(请求过多)响应
### 先验证数据
* 在导入前清洗并验证数据
* 检查必填字段是否已填写
* 验证格式是否符合 Twenty 的要求 (参见 [字段映射](/l/zh/user-guide/data-migration/capabilities/field-mapping))
### 记录一切
* 记录每一条导入的记录(包括 ID)
* 记录错误及其完整上下文
* 这有助于调试问题并验证完成情况
### 先进行测试
* 使用小批量进行测试(10-20 条记录)
* 验证数据在 Twenty 中显示是否正确
* 然后执行完整导入
### 使用合并插入避免重复
GraphQL API 支持**批量合并插入** — 若记录已存在则更新,不存在则创建。 这可以在重新运行导入时防止重复。
## 查找对象和字段名称
查看可用的对象和字段:
1. 前往 **设置 → API 和 Webhooks**
2. 浏览 **Metadata API**
3. 查看所有标准和自定义对象及其字段
文档展示了所有标准和自定义对象、它们的字段以及预期的数据类型。
## 专业服务
对于复杂的 API 迁移,我们的合作伙伴可以提供帮助:
| 服务 | 包含内容 |
| ---------- | ---------- |
| **数据模型设计** | 设计最优的数据结构 |
| **迁移脚本** | 编写并运行导入脚本 |
| **数据转换** | 处理复杂的映射与清理 |
| **验证与 QA** | 验证迁移是否完成 |
**适用于:**
* 迁移 100,000+ 条记录
* 复杂的数据转换
* 紧迫的时间安排
* 缺乏开发人员资源的团队
请通过 [contact@twenty.com](mailto:contact@twenty.com) 与我们联系,或查看我们的 [实施服务](/l/zh/user-guide/getting-started/capabilities/implementation-services)。
## 常见问题
<AccordionGroup>
<Accordion title="GraphQL 与 REST 有何区别?">
GraphQL 允许您在一次查询中准确请求所需数据,并且更适合复杂操作。 REST 使用标准的 HTTP 方法(GET、POST、PUT、DELETE),如果您使用过传统 API,可能会更熟悉。
</Accordion>
<Accordion title="我可以通过 API 更新现有记录吗?">
是! 使用 update mutationGraphQL)或带有记录 `id` 的 PUT/PATCH 请求(REST)。
</Accordion>
<Accordion title="如何处理重复数据?">
首先使用唯一标识符(email、domain)查询现有记录。 存在则更新,不存在则创建。
</Accordion>
<Accordion title="我可以通过 API 删除记录吗?">
可以,使用 delete mutationGraphQL)或 DELETE 请求(REST)。
</Accordion>
<Accordion title="是否提供 Python 或 Node.js 的 SDK">
目前没有,但这两种 API 可与任何语言中的任意 HTTP 客户端配合使用。
</Accordion>
</AccordionGroup>
## API 文档
有关完整的实现细节、代码示例和架构参考:
* [API 文档](/l/zh/developers/extend/api)