1. Enterprise Vertica dan nega ketadi: real muammolar
Vertica — Maykl Stounbreyker yaratgan proprietar MPP-SUBD. Bugun OpenText kompaniyasiga tegishli (Micro Focus/HPE orqali). Vertica — analitika uchun kuchli dvigatel, lekin enterprise-foydalanuvchilar masshtablash vaqtida real muammolarga duch keladi.
Aniq muammolarni koʼrib chiqamiz — Avito ning ochiq keysi asosida (2 PB maʼlumotlar, 50 nod, 50 000 jadval), Habr da 2025 yil dekabr oyida nashr etilgan.
Masshtablash — haftalik toʼxtash
Vertica ga nod qoʼshish maʼlumotlarni toʼliq rebalansirovalashni talab qiladi. Avito keysida: 1 PB maʼlumotlar — rebalansirovalash ~1 hafta, yana bir hafta ortda qolishni oʼqib chiqish. Klaster taxminan ikki hafta davomida dolzarb maʼlumotlarsiz qoladi.
Resurslar uchun raqobat
Barcha yuklamalar (ETL, ad-hoc, BI, anti-fraud) bitta manzil fazosida bitta resurslar uchun raqobatlashadi. Pik soatlarda (03:00-15:00) barcha soʼrovlar uchun resurslar yetarli emas. Resource Pools faqat soft limits beradi — haqiqiy izolyatsiya yoʼq.
Nosozliklardan keyin tiklash — soat davomida analitikasiz
Vertica qulagan vaqtda juda uzoq koʼtariladi. Bitta nod nosozligi oʼtadi. Lekin klasterning toʼliq nosozligi — ~1 soat analitikasiz. SLA talablari bor banklar va telekom uchun qabul qilib boʼlmaydi.
Vendor lock-in va litsenziya
OpenText ning proprietar litsenziyasi (avval Micro Focus/HPE). Avito keysida: Vertica Eon Mode koʼrib chiqildi, lekin geosiyosiy vaziyat tufayli vendor bilan aloqa uzildi. Per-TB litsenziya: maʼlumotlar oʼsishi bilan oʼsadi. Markaziy Osiyoda OpenText ning mahalliy ishtiroki va SLA kafolatlari yoʼq.
Keng jadvalarga kiritish
Vertica keng jadvalarga (100+ ustunlar) kiritish vaqtida maʼlumotlarni qayta saralashni talab qiladi. Yuzlab ustunlari bor katta hajmni saralash — qimmat va koʼp mehnat talab qiladigan operatsiya.
2. Apache Doris bu muammolarning har birini qanday hal qiladi
Vertica ning har bir muammosining Apache Doris arxitekturasida aniq yechimi bor:
| Vertica muammosi | Apache Doris yechimi |
|---|---|
| Haftalik rebalansirovalash | Tablet-based sharding, BE-nodlar qoʼshilganda auto-balance. Yangi nodlar daqiqalarda ulanadi, maʼlumotlar fonda blokirovkasiz tenglanadi. |
| Resurslar uchun raqobat | Cgroups bilan Workload Groups: har bir foydalanuvchi guruhi uchun CPU/Memory qatʼiy limitlar. ETL ad-hoc ni oʼldirmaydi. |
| Nosozlikda soat davomida analitikasiz | BE nodlar — replikalari bor stateless executor. FE — BDBJE orqali consensus. Tiklash vaqti: soniyalar, soat emas. |
| Vendor lock-in, litsenziya | Apache License 2.0: nol litsenziya xarajatlari, nol sanksiya xavfi. VeloDB Enterprise — open-source bilan 100% moslik. |
| Keng jadvallar sekinlashtiradi | Majburiy saralashsiz columnar storage. Batch insert uchun Stream Load. Aggregate/Duplicate/Unique Key modellari. |
| Compute/storage ajratilmagan | Compute-storage decoupled mode: hisoblashlarni saqlashdan alohida masshtablang. |
3. Arxitekturaviy taqqoslash
Vertica va Apache Doris arxitekturasini batafsil taqqoslash:
| Vertica (Enterprise Mode) | Apache Doris | |
|---|---|---|
| Arxitektura | Shared-nothing MPP, coupled compute+storage | MPP, coupled yoki decoupled (ixtiyoriy) |
| Masshtablash | Nod qoʼshish + rebalansirovalash (kunlar-haftalar) | BE-nod qoʼshish + auto-balance (daqiqalar) |
| Saqlash modellari | Projections (materializatsiyalangan saralangan nusxalar) | 3 model: Duplicate Key, Unique Key, Aggregate Key + Materialized Views |
| Real-time UPSERT | Cheklangan (DELETE + INSERT) | Delete Bitmap bilan Unique Key — nativ UPSERT |
| Full-text qidiruv | Nativ yoʼq (semi-structured uchun Flex Tables) | Full-text search uchun Inverted Index + BM25 |
| Vector Search | Yoʼq | AI/RAG uchun HNSW / IVFPQ |
| Lakehouse Federation | Cheklangan (S3/HDFS uchun External Tables) | Multi-Catalog: Iceberg, Hudi, Delta, Hive, JDBC |
| SQL protokol | Oʼziga xos protokol + JDBC/ODBC | MySQL protocol — har qanday BI vosita tayyor ishlaydi |
| Workload Isolation | Resource Pools (soft limits) | Workload Groups + cgroups (hard limits) |
| Litsenziya | Proprietary (OpenText), per-TB | Apache 2.0 (bepul), VeloDB Enterprise — per-core |
4. Unumdorlik: benchmarklar
Avito 2022 yilda oʼz testini oʼtkazdi: Trino murakkab analitik soʼrovlarda Vertica bilan paritetni koʼrsatdi. Kontekst uchun: Apache Doris oʼsha yuklarda Trino dan barqaror tezroq.
TPC-H SF100: Doris anʼanaviy DWH-dvigatellardan 3-5x tezroq. TPC-DS: Doris 99/99 soʼrovni bajaradi — enterprise-grade SQL toʼliqligi.
Real-time yangilanishlar: ClickHouse dan 34x gacha tezroq (u Vertica dan yozish boʼyicha tezroq). ClickBench: Doris analitik yuklarda top-3 da.
Asosiy xulosa: Vertica — kuchli dvigatel. Lekin Doris unga mos keladi yoki oshib ketadi, shu bilan birga real-time, toʼliq matnli qidiruv va vektor imkoniyatlarini qoʼshadi.
Manbalar: Avito ning Habr dagi ommaviy maqolalari, VeloDB benchmarklari.
5. SQL koʼchish: nima oʼzgaradi
Vertica dan Apache Doris ga koʼchish vaqtida SQL-konstruktsiyalarni mapping:
| Vertica SQL | Apache Doris SQL | Izoh |
|---|---|---|
| COPY FROM | Stream Load / Broker Load | HTTP API yoki S3/HDFS load |
| Projections | Materialized Views + auto rewrite | MV avtomatik CBO tomonidan qoʼyiladi |
| MERGE INTO | INSERT INTO ... ON DUPLICATE KEY UPDATE | Unique Key jadvallar |
| Flex Tables | VARIANT maʼlumot turi | Semi-structured maʼlumotlar |
| UDx (C++) | UDF (Java) | Java asosidagi kengaytirilish |
| Resource Pools | Workload Groups | Qatʼiyroq izolyatsiya |
| Partitioning by expression | RANGE/LIST Partition | Oʼxshash imkoniyatlar |
| ANALYZE_STATISTICS | ANALYZE TABLE | Automatic statistics collection |
// SQL KOʼCHISH MISOLI -- Vertica: SELECT customer_id, SUM(amount)
FROM transactions
WHERE tx_date >= CURRENT_DATE - INTERVAL '30 days' GROUP BY customer_id
HAVING SUM(amount) > 10000;
-- Apache Doris: SELECT customer_id, SUM(amount)
FROM transactions
WHERE tx_date >= CURRENT_DATE - INTERVAL 30 DAY
GROUP BY customer_id
HAVING SUM(amount) > 10000; Minimal farqlar: INTERVAL sintaksisi, baʼzi tip konvertatsiyalari. 90%+ soʼrovlar oʼzgarishsiz ishlaydi.
6. Egalik qilish narxi (TCO)
| Omil | Vertica | Apache Doris / VeloDB |
|---|---|---|
| Litsenziya | Per-TB (maʼlumotlarga proportsional oʼsish) | Apache 2.0 bepul / VeloDB per-core |
| Infratuzilma | Maxsus serverlar, coupled | Commodity hardware, ixtiyoriy cloud |
| Xizmat koʼrsatish | Projections tuning, statistics, DBA | Auto Materialized Views, CBO, kamroq DBA ishi |
| Masshtablash | Qimmat: rebalansirovalash = downtime | Arzon: add nodes online, auto-balance |
| Vendor risk | OpenText (sotib olish noaniqligi) | Apache Foundation (community-governed) |
Keys: VeloDB Enterprise Client (moliya sektori) — Oracle + Teradata almashtirish, TCO 60% kamaytirish, soʼrovlar 8x tezlashtirish. Proprietar DWH dan koʼchishdagi odatiy tejash: 40-70%.
7. Koʼchish vositalari
Vertica dan Apache Doris ga koʼchish uchun vositalar ekotizimi:
X2Doris
Avtomatik koʼchish: sxemalarni konvertatsiya, maʼlumotlarni koʼchirish.
Parquet/ORC export → Broker Load
Vertica EXPORT → S3 → Doris Broker Load.
JDBC Catalog
Doris Vertica dan JDBC orqali toʼgʼridan-toʼgʼri oʼqiydi — parallel validatsiya uchun.
Flink CDC
Dual-run davrida incremental sinxronlash uchun.
SQL Converter
Vertica SQL → Doris SQL avtomatik tarjimasi.
5 fazali koʼchish strategiyasi:
- Doris ni Vertica yoniga deploy qilish
- Maʼlumotlarni replikatsiya qilish (Parquet export yoki JDBC)
- Soʼrovlarni parallel ishga tushirish, natijalarni taqqoslash
- Read-trafikni bosqichma-bosqich oʼtkazish
- Vertica ni foydalanishdan chiqarish
8. Vertica qachon yaxshiroq boʼlishi mumkin
Xolisona baho — Vertica ning kuchli tomonlari bor:
- Vertica Projections ga chuqur investitsiya qilib, ular yuklamangizga mukammal sozlangan boʼlsa.
- Vertica ning ilgʼor ML-funktsiyalarini foydalansangiz (in-database machine learning).
- Jamoa Vertica da chuqur tajribaga ega boʼlsa va oʼzgarishlarga motivatsiya boʼlmasa.
- Vertica Eon Mode foydalanib, OpenText bilan ish munosabati boʼlsa.
Lekin real-time yangilanishlar, full-text qidiruv, vector search, lakehouse federation yoki ochiq litsenziya kerak boʼlsa — Doris bu vazifalarni hal qiladi. Agar vendor risk muhim boʼlsa (sanksiyalar, OpenText noaniqligi) — Apache 2.0 bu xavfni toʼliq bartaraf etadi.