bruin-data/ingestr 数据集成工具快速入门指南
什么是 ingestr?
ingestr 是一款强大的命令行数据集成工具,它允许用户通过简单的命令行参数将数据从任何来源导入到任何目标位置,整个过程无需编写任何代码。作为数据工程师的得力助手,ingestr 极大地简化了数据迁移和集成的工作流程。
核心特性
- 多源多目标支持:支持从 PostgreSQL、MongoDB、BigQuery 等多种数据源提取数据,并加载到各种目标数据库
- 增量加载策略:提供三种灵活的增量加载方式:
append
:追加模式,保留历史数据merge
:合并模式,智能更新记录delete+insert
:先删除后插入,确保数据一致性
- 极简安装:一行命令即可完成安装,快速投入使用
- 无代码操作:完全通过命令行参数配置,无需开发额外代码
安装指南
推荐安装方式
我们强烈推荐使用 uv 工具来安装 ingestr,这将获得最佳的安装体验:
pip install uv
uvx ingestr
全局安装选项
如果需要将 ingestr 安装为系统级工具,可以使用以下命令:
uv pip install --system ingestr
虽然标准的 pip 安装方式也可用,但其安装速度相比 uv 要慢得多。
快速开始示例
下面是一个典型的 ingestr 使用场景,将 PostgreSQL 中的数据导入到 BigQuery:
ingestr ingest \
--source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' \
--source-table 'public.some_data' \
--dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' \
--dest-table 'ingestr.some_data'
这个命令完成了以下工作:
- 从指定的 PostgreSQL 实例中获取
public.some_data
表的数据 - 将这些数据上传到 BigQuery 数据仓库中,存储在
ingestr
模式下的some_data
表
连接字符串格式说明
ingestr 使用标准化的连接字符串格式来配置数据源和目标:
-
PostgreSQL 连接示例:
postgresql://用户名:密码@主机:端口/数据库?额外参数
-
BigQuery 连接示例:
bigquery://项目名称?credentials_path=服务账号JSON文件路径
增量加载策略详解
ingestr 提供了三种增量数据处理策略,满足不同业务场景需求:
-
追加模式 (append):
- 特点:保留目标表中所有现有数据,仅追加新数据
- 适用场景:历史数据需要完整保留的日志类数据
-
合并模式 (merge):
- 特点:智能识别并更新已存在的记录,同时插入新记录
- 适用场景:需要保持数据最新状态的维度表
-
删除+插入模式 (delete+insert):
- 特点:先删除目标表中相关数据,再插入新数据
- 适用场景:需要完全刷新数据的场景
支持的数据源和目标
ingestr 支持广泛的数据源和目标系统,包括但不限于:
- 关系型数据库:PostgreSQL、MySQL、SQL Server 等
- NoSQL 数据库:MongoDB 等
- 数据仓库:BigQuery、Snowflake 等
- 文件系统:CSV、JSON 等格式文件
(注:具体支持的完整列表请参考官方文档中的"支持的数据源和目标"页面)
最佳实践建议
- 连接安全:生产环境中建议使用 SSL 加密连接
- 权限控制:为 ingestr 配置最小必要权限的数据库账号
- 批量处理:对于大数据量操作,考虑分批处理
- 日志监控:建议记录 ingestr 的执行日志以便审计
通过 ingestr,数据工程师可以摆脱繁琐的 ETL 开发工作,专注于数据价值的挖掘和分析工作。其简洁的设计和强大的功能使其成为现代数据栈中不可或缺的工具之一。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考