配置 AIRBYTE 工作数据库

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 : 包含连接的最后保存状态。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值