配置 AIRBYTE 工作数据库

文章介绍了如何管理Airbyte的内部状态和元数据,包括使用默认的postgres数据库或独立的云托管实例。Airbyte的Jobdatabase和Configdatabase分别存储作业执行和配置信息。用户可以通过API或UI进行数据库操作,如备份和维护。文章还提供了将Airbyte连接到外部Postgres数据库的步骤,强调了使用独立数据库实例的好处,如高可用性和弹性扩展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Airbyte 使用不同的对象来存储内部状态和元数据。数据是由各种 Airbyte 组件存储和操作,但您可以通过以下两种方式管理数据库的部署

使用默认的 postgres 数据库,它已经写到 docker-compose.yml 中,即 docker-compose.yml 中的 airbyte/db 服务。

使用单独的 postgres 实例(这种情况下 airbyte/db 就不再被使用,您可以将它从您的 docker-compose.yml 中移除。)。将数据库部署到 docker 和 k8s 中不是一种很好的实践。使用专门的数据库实例将让您的 airbyte 环境有更高的可靠性。此外,使用云托管的Postgres实例(如AWS的RDS,GCP的Cloud SQL),您将得到更细粒度的备份和实例大小调整。例如,一开始业务量不大,我们可以选择一个相对小的实例,后续我们根据数据量的增长情况,进行弹性的扩容或者缩容。

Airbyte 中的各种实体保存在两个内部数据库中:

Job database

里面存放有关 Airbyte 作业执行和各种运行时元数据的数据。

里面存放有关 Airbyte、Temporal.io 使用的内部编排器的数据(任务、工作流数据、事件和可见性数据)。

Config database

里面存放连接器、同步的连接和各种 Airbyte 配置对象。

请注意,来自源(或目标)连接器的实际数据不会传输或保留在此内部数据库中。

如果您需要操作这些数据库,例如进行备份或执行一些清理维护,您还可以通过 API 或 UI (在管理页面的配置选项卡中)进行。

连接外部的 POSTGRES 数据库

让我们来看看使用不由 Airbyte 管理的 Postgres 实例需要什么。首先,在本教程中我们将使用以下命令通过 docker 创建的独立的 Postgres 环境。如果您已经存在其他的 Postgresql 实例,你可以不执行此操作。

docker run --rm --name airbyte-postgres -e POSTGRES_PASSWORD=password -p 3000:5432 -d postgres

为了让 Airbyte 使用我们刚才创建的数据库实例,我们需要修改airbyte的环境变量(docker 方式部署的环境变量配置文件通常为airbyte安装目录下.env)。我们需要修改一下环境变量。

#外部数据库的用户名 DATABASE_USER=postgres #外部数据库的密码 DATABASE_PASSWORD=password #外部数据库的 ip 或者域名 DATABASE_HOST=host.docker.internal #外部数据库的端口 DATABASE_PORT=3000 #外部数据库的 db 名称 DATABASE_DB=postgres

默认情况下,Config Database 和 Job Database 根据上述设置使用相同的数据库实例。但是,可以通过指定单独的参数将前者与后者分开。例如:

CONFIG_DATABASE_USER=airbyte_config_db_user CONFIG_DATABASE_PASSWORD=password

此外,您必须重新构造DATABASE_URL环境的 JDBC URL,让它包含正确的主机、端口和数据库。如果您需要向 JDBC 驱动程序提供额外的参数(例如, SSL),您也应该在此处添加它:

DATABASE_URL=jdbc:postgresql://host.docker.internal:3000/postgres?ssl=true&sslmode=require

如果要将Config database 和 Job database 分开,则同样需要重新构造JDBC URL:

CONFIG_DATABASE_URL=jdbc:postgresql://<host>:<port>/<database>?<extra-parameters>

初始化数据库

注意:当前步骤只用于当用户使用自己的数据库实例的情况。

如果您提供了一个空的数据库实例给 Airbyte 并且是首次启动 Airbyte,Airbyte 会自动进行初始化。 请确保:

连接库已经在Postgres中创建好

连接用户同时具有读写权限

连接库是一个空库

如果连接库不是一个空库,并且拥有一个和 Airbyte 自身创建表的表名相同的表,Airbyte 会认定当且数据库已经完成了初始化,就不会再初始化创建表了,导致Airbyte 运行失败。当出现这种问题的时候,您只需清除到当前数据库中的所有表,然后重新拉起 Airbyte 即可。

访问AIRBYTE的默认工作库即AIRBYTE/DB

使用默认数据库的情况下(即使用docker-compose.yml中的airbyte/db),如果开发人员想要访问airbyte工作库,可以按照以下说明进行操作

如其他的说明所示,所有的数据库账号密码配置都在airbyte部署目录下的.env文件内。默认情况下,这些配置有:

#数据库的用户名 DATABASE_USER=docker #数据库的密码 DATABASE_PASSWORD=docker #数据库的库名 DATABASE_DB=airbyte

查到配置后,您可以执行以下命令接入到airbyte工作库中。

#如果您修改了.env文件中数据库相关的配置,请把用户名,库名,和密码修改成您修改后的值 docker exec -ti airbyte-db psql -U docker -d airbyte

在Airbyte库中,您将看到以下表:

workspace : 包含名称、通知配置等工作空间信息。

actor_definition : 包含源和目标连接器定义。

actor : 包含源和目标连接器信息。

actor_oauth_parameter : 包含源和目标 oauth 参数。

operation : 包含 dbt 和自定义规范化操作。

connection : 包含目录详细信息、源、目标等连接配置。

connection_operation : 包含为给定连接配置的操作。

state : 包含连接的最后保存状态。
 

### 使用 Docker 部署 Airbyte 的方法 #### 准备工作 为了使用 Docker 部署 Airbyte,首先需要克隆官方 GitHub 仓库中的项目代码。执行以下命令来获取最新的 Airbyte 源码: ```bash git clone https://github.com/airbytehq/airbyte.git ``` 接着切换到刚下载下来的 `airbyte` 文件夹内以便继续操作[^1]。 #### 修改配置文件 进入到项目的根目录之后,可以通过编辑 `.env` 文件来自定义一些必要的环境变量设置,比如更改默认的管理员账户名和密码等信息。这一步骤并非强制性的,但如果希望增强安全性,则建议按照需求调整这些选项: ```bash vim .env ``` 在此处可指定自定义用户名(通过设置 `BASIC_AUTH_USERNAME` 变量)及对应的登录凭证(即 `BASIC_AUTH_PASSWORD`)。如果不做任何改动,默认情况下将以 "airbyte/password" 这组凭据作为初始登陆组合[^2]。 #### 启动服务 当一切准备就绪后,就可以利用 Docker Compose 工具一键启动整个平台了。考虑到首次运行时可能会涉及到较多依赖项的下载过程,因此耗时相对较久一点也是正常现象。推荐采用后台模式 (`-d`) 来保持终端可用状态的同时让容器持续运作: ```bash docker-compose up -d ``` 一旦部署成功,在浏览器里输入形如 http://<服务器IP>:8000 的URL即可访问 Web 界面。 #### 测试连接数据库实例 对于想要验证数据同步功能是否正常的场景来说,还可以参照 SourceConfig JSON 对象模板去构建相应的源连接对象(SourceConnection),其中包含了目标 MySQL 数据库的相关属性描述,例如主机地址、端口号以及认证资料等等[^3]: ```json { "connectionConfiguration": { "tunnel_method": {"tunnel_method":"NO_TUNNEL"}, "ssl": false, "port": 3306, "replication_method": "STANDARD", "host": "192.168.12.71", "database": "ds_task", "username": "root", "password": "123456" }, "sourceDefinitionId": "435bb9a5-7887-4809-aa58-28c27df0d7ad" } ``` 以上就是基于 Docker 安装并初始化 Airbyte 平台的主要流程概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值