ClickHouse dışa aktarımı
Tıklama olayları ClickHouse’ta yaşar (click_events tablosu). Bugün onları S3 uyumlu depolamaya zamanlanmış bir dışa aktarımla alırsınız; pano ayrıca Analytics altından eşzamansız CSV dışa aktarımları sunar.
Planlandı. Henüz kullanılamaz; yol haritasına bakın. Şunlar uygulanmamıştır: çalışma alanı başına salt okunur bir ClickHouse DSN (
/clickhouse-dsn), Parquet çıktısı, BigQuery ve Snowflake hedefleri (API bukinddeğerlerini kabul eder ancak dışa aktarım işçisi bunları reddeder), bölge başına DSN ana bilgisayarları ve ClickHouse’ta birconversionstablosu (dönüşümler Postgres’te yaşar). Aşağıdaki 3. ve 4. bölümler bugün var olanı anlatır.
1. Bugün var olanlar
| Yetenek | Durum |
|---|---|
S3 / MinIO’ya zamanlanmış dışa aktarım (kind: "s3") | Kullanılabilir |
| Zamanlamalar | hourly veya daily (varsayılan daily) |
| Çıktı biçimi | gzip ile sıkıştırılmış NDJSON, satır başına bir tıklama |
| Panodan eşzamansız CSV dışa aktarımı | Kullanılabilir (/analytics-exports) |
| Doğrudan salt okunur ClickHouse DSN | Planlandı |
| Parquet çıktısı | Planlandı |
| BigQuery / Snowflake hedefleri | Planlandı |
2. Şema
Ham tıklamalar click_events içinde saklanır:
| Sütun | Tür | Notlar |
|---|---|---|
timestamp | DateTime64(3, 'UTC') | milisaniye hassasiyeti |
link_id | UInt64 | bağlantı satır kimliği |
workspace_id | UInt64 | |
domain_id | UInt64 | |
slug, host | LowCardinality(String) | |
user_agent, referer | String | |
ip | String | kesilmeden tam olarak saklanır |
country_code | FixedString(2) | ISO-3166-1 alpha-2 |
device, browser | LowCardinality(String) | |
destination | String | çözümlenmiş hedef URL’si |
is_suspicious, suspicion_reasons | UInt8, Array(String) | tıklama sahtekârlığı sezgisel işareti |
anonymizer_type | LowCardinality(String) | VPN / proxy sınıflandırması |
Tıklama başına click_id yoktur ve UTM’ler ayrı sütunlar olarak saklanmaz; hedef URL’nin parçasıdırlar.
Zamanlanmış dışa aktarım şu anda tıklama başına şu alanları yazar: timestamp, link_id, workspace_id, domain_id, slug, host, user_agent, referer, ip, country_code, device, browser, destination. (device, browser ve destination şu anda boş dize olarak dışa aktarılır.)
3. Zamanlanmış S3 dışa aktarımı
export.manage izni gerekir.
curl -X PUT \
https://api.elido.app/v1/workspaces/1/export \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"kind": "s3",
"enabled": true,
"schedule": "hourly",
"destination": { "bucket": "acme-bi-warehouse", "prefix": "elido" }
}'Yapılandırmaları GET /v1/workspaces/{id}/export, PATCH /v1/workspaces/{id}/export/{kind}/enabled ve DELETE /v1/workspaces/{id}/export/{kind} ile yönetin.
Her çalıştırma çalışma alanı başına bir nesne yazar: <prefix>/exports/<workspace_id>/<YYYY-MM-DD>/clicks_<HHMMSS>.ndjson.gz. İlk çalıştırma tüm geçmişi dışa aktarır; sonraki çalıştırmalar yalnızca bir önceki çalıştırmadan beri olan tıklamaları aktarır. Kendi barındıranlar için: S3 uç noktası ve kimlik bilgileri api-core ortamından gelir.
4. Veri ambarına yükleme
Dosyalar NDJSON olduğu için BigQuery (bq load --source_format=NEWLINE_DELIMITED_JSON), Snowflake (TYPE = JSON ile COPY INTO) ve Redshift bunları kovadan standart yükleyicileriyle yükleyebilir. Yerel Parquet ve itme (push) tarzı BigQuery / Snowflake hedefleri planlanmıştır.
5. Uç durumlar
- Gecikme: dışa aktarımlar zamanlama aralığı kadar geriden gelir (hourly = en fazla 60 dakika geride).
- Saklama:
click_eventsüzerinde şu anda otomatik bir süre dolumu (TTL) yoktur; plana dayalı saklama pencereleri planlanmıştır. - Bölge sabitleme: henüz kullanılamaz; tüm tıklama verileri AB dağıtımında saklanır.
- Şema evrimi: sütunlar
ALTER TABLE ... ADD COLUMN IF NOT EXISTSve varsayılan değerlerle eklenir; mevcut sütunlar yeniden adlandırılmaz.
Ayrıca bakın
- Dönüşüm izleme: dönüşümlerin nasıl kaydedildiği (Postgres’te, Stripe / Shopify webhook’ları aracılığıyla)
- API başvurusu: dışa aktarım yapılandırma uç noktaları