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 管理