airbyte-connection-setup
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAirbyte 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:
- serveryaml
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
undefinedpython
undefinedPostgreSQL источник
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
}
}
undefinedsource_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
undefinedpython
undefinedSnowflake назначение
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"}
}
undefineddestination_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 requestspython
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
)
undefinedconnection_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Устранение неполадок
故障排查
Частые проблемы
常见问题
- Сетевое подключение: Проверьте фаервол и доступ
- Аутентификация: Проверьте права и срок действия
- Лимиты ресурсов: Мониторинг памяти и CPU
- Изменения схемы: Обновление конфигураций
- 网络连接:检查防火墙与访问权限
- 身份验证:检查权限与有效期
- 资源限制:监控内存与CPU
- 架构变更:更新配置
Оптимизация
优化建议
- Настройка размеров батчей
- Использование пулинга подключений
- Индексирование полей курсора
- Мониторинг производительности
- 配置批处理大小
- 使用连接池
- 为游标字段建立索引
- 性能监控
Безопасность
安全措施
- Хранение секретов в vault
- SSL/TLS для всех подключений
- Сетевая сегментация
- Регулярные обновления
- 在Vault中存储密钥
- 所有连接使用SSL/TLS
- 网络分段
- 定期更新