airbyte-connection-setup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Airbyte Connection Setup Expert

Airbyte 连接配置专家

Эксперт по настройке и управлению подключениями в Airbyte.
专注于Airbyte中连接的配置与管理的专家。

Основные принципы

核心原则

Архитектура подключений

连接架构

  • Пары источник-назначение: Потоки данных с трансформацией
  • Инкрементальная синхронизация: Предпочтительнее full refresh
  • Эволюция схемы: Обработка изменений схемы
  • Восстановление после сбоев: Надёжная обработка ошибок
  • 源-目标对:带转换的数据流
  • 增量同步:优先于全量刷新
  • 架构演进:处理架构变更
  • 故障恢复:可靠的错误处理

Режимы синхронизации

同步模式

  • Full Refresh: Полная перезапись данных
  • Incremental Append: Добавление новых записей
  • Incremental Deduped: Дедупликация по первичному ключу
  • Full Refresh:全量覆盖数据
  • Incremental Append:追加新记录
  • Incremental Deduped:按主键去重

Docker Compose Setup

Docker Compose 部署配置

yaml
version: '3.8'
services:
  db:
    image: airbyte/db:${VERSION}
    environment:
      - POSTGRES_USER=${DATABASE_USER}
      - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
    volumes:
      - db:/var/lib/postgresql/data

  server:
    image: airbyte/server:${VERSION}
    environment:
      - DATABASE_PASSWORD=${DATABASE_PASSWORD}
      - DATABASE_URL=${DATABASE_URL}
      - WORKSPACE_ROOT=/tmp/workspace
    ports:
      - "8001:8001"
    volumes:
      - workspace:/tmp/workspace
      - data:/data
    depends_on:
      - db

  webapp:
    image: airbyte/webapp:${VERSION}
    ports:
      - "8000:80"
    depends_on:
      - server
yaml
version: '3.8'
services:
  db:
    image: airbyte/db:${VERSION}
    environment:
      - POSTGRES_USER=${DATABASE_USER}
      - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
    volumes:
      - db:/var/lib/postgresql/data

  server:
    image: airbyte/server:${VERSION}
    environment:
      - DATABASE_PASSWORD=${DATABASE_PASSWORD}
      - DATABASE_URL=${DATABASE_URL}
      - WORKSPACE_ROOT=/tmp/workspace
    ports:
      - "8001:8001"
    volumes:
      - workspace:/tmp/workspace
      - data:/data
    depends_on:
      - db

  webapp:
    image: airbyte/webapp:${VERSION}
    ports:
      - "8000:80"
    depends_on:
      - server

Конфигурация источника

数据源配置

python
undefined
python
undefined

PostgreSQL источник

PostgreSQL 数据源

source_config = { "host": "localhost", "port": 5432, "database": "production_db", "username": "airbyte_user", "password": "secure_password", "ssl_mode": {"mode": "require"}, "replication_method": { "method": "CDC", "plugin": "pgoutput", "initial_waiting_seconds": 300 } }
undefined
source_config = { "host": "localhost", "port": 5432, "database": "production_db", "username": "airbyte_user", "password": "secure_password", "ssl_mode": {"mode": "require"}, "replication_method": { "method": "CDC", "plugin": "pgoutput", "initial_waiting_seconds": 300 } }
undefined

Конфигурация назначения

数据目标配置

python
undefined
python
undefined

Snowflake назначение

Snowflake 数据目标

destination_config = { "host": "account.snowflakecomputing.com", "role": "AIRBYTE_ROLE", "warehouse": "AIRBYTE_WAREHOUSE", "database": "AIRBYTE_DATABASE", "schema": "RAW_DATA", "username": "airbyte_user", "password": "secure_password", "loading_method": {"method": "Internal Staging"} }
undefined
destination_config = { "host": "account.snowflakecomputing.com", "role": "AIRBYTE_ROLE", "warehouse": "AIRBYTE_WAREHOUSE", "database": "AIRBYTE_DATABASE", "schema": "RAW_DATA", "username": "airbyte_user", "password": "secure_password", "loading_method": {"method": "Internal Staging"} }
undefined

Конфигурация синхронизации

同步配置

json
{
  "syncCatalog": {
    "streams": [
      {
        "stream": {
          "name": "users",
          "supportedSyncModes": ["full_refresh", "incremental"]
        },
        "config": {
          "syncMode": "incremental",
          "cursorField": ["updated_at"],
          "destinationSyncMode": "append_dedup",
          "primaryKey": [["id"]]
        }
      }
    ]
  },
  "schedule": {
    "units": 1,
    "timeUnit": "hours"
  }
}
json
{
  "syncCatalog": {
    "streams": [
      {
        "stream": {
          "name": "users",
          "supportedSyncModes": ["full_refresh", "incremental"]
        },
        "config": {
          "syncMode": "incremental",
          "cursorField": ["updated_at"],
          "destinationSyncMode": "append_dedup",
          "primaryKey": [["id"]]
        }
      }
    ]
  },
  "schedule": {
    "units": 1,
    "timeUnit": "hours"
  }
}

API интеграция

API 集成

python
import requests
python
import requests

Создание источника

创建数据源

source_payload = { "sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750", "connectionConfiguration": source_config, "workspaceId": workspace_id, "name": "Production PostgreSQL" }
response = requests.post( f"{airbyte_url}/api/v1/sources/create", json=source_payload, headers={"Content-Type": "application/json"} )
source_payload = { "sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750", "connectionConfiguration": source_config, "workspaceId": workspace_id, "name": "Production PostgreSQL" }
response = requests.post( f"{airbyte_url}/api/v1/sources/create", json=source_payload, headers={"Content-Type": "application/json"} )

Создание подключения

创建连接

connection_payload = { "sourceId": source_id, "destinationId": destination_id, "syncCatalog": sync_catalog, "schedule": {"units": 1, "timeUnit": "hours"} }
requests.post( f"{airbyte_url}/api/v1/connections/create", json=connection_payload )
undefined
connection_payload = { "sourceId": source_id, "destinationId": destination_id, "syncCatalog": sync_catalog, "schedule": {"units": 1, "timeUnit": "hours"} }
requests.post( f"{airbyte_url}/api/v1/connections/create", json=connection_payload )
undefined

Устранение неполадок

故障排查

Частые проблемы

常见问题

  1. Сетевое подключение: Проверьте фаервол и доступ
  2. Аутентификация: Проверьте права и срок действия
  3. Лимиты ресурсов: Мониторинг памяти и CPU
  4. Изменения схемы: Обновление конфигураций
  1. 网络连接:检查防火墙与访问权限
  2. 身份验证:检查权限与有效期
  3. 资源限制:监控内存与CPU
  4. 架构变更:更新配置

Оптимизация

优化建议

  • Настройка размеров батчей
  • Использование пулинга подключений
  • Индексирование полей курсора
  • Мониторинг производительности
  • 配置批处理大小
  • 使用连接池
  • 为游标字段建立索引
  • 性能监控

Безопасность

安全措施

  • Хранение секретов в vault
  • SSL/TLS для всех подключений
  • Сетевая сегментация
  • Регулярные обновления
  • 在Vault中存储密钥
  • 所有连接使用SSL/TLS
  • 网络分段
  • 定期更新