VK Cloud logo

ClickHouse-та деректермен жұмыс істеу бойынша ұсынымдар

ClickHouse-тың тиімді және тұрақты жұмысы үшін келесі практикаларды қолдану ұсынылады:

  • Жиі қолданылатын деректер үшін кілттерді пайдаланыңыз.

    Сұрауларыңыздағы жиі сүзгілеу (WHERE), топтау (GROUP BY) және сұрыптау (ORDER BY) операциялары орындалатын бағандарда бастапқы кілттерді (primary key) пайдаланыңыз. Әдетте бұлар нысан идентификаторы немесе күн сияқты бірегей не жиі қолданылатын баған комбинациялары болады.

    Бөлімдеуге арналған кілтті (partition key) ең жиі кездесетін диапазондық сұраулар мен деректерді жою сценарийлеріне сәйкес келетіндей етіп таңдаңыз. Әдетте бұл күн немесе күндер аралығы.

  • Деректерді жүктеу стратегияларын оңтайландырыңыз.

    Көптеген шағын кірістірулерді (INSERT) үлкен пакеттік кірістірулерге (bulk inserts) біріктіріңіз. Бір жолы кемінде 50000 жол жіберу ұсынылады.

    Біріктіру үшін CSV, TSV, Parquet пішімдерін пайдаланыңыз.

  • JOIN-операцияларын барынша азайтыңыз немесе оңтайландырыңыз.

    Кестелер неғұрлым үлкен болса, әрбір JOIN-операция соғұрлым баяу орындалады. Деректерді сұраудың өзінде емес, жүктеу кезеңінде немесе materialized views көмегімен алдын ала біріктіруге тырысыңыз.

  • Жаппай модификациялардан (ALTER TABLE) аулақ болыңыз.

    ClickHouse-та жаппай жаңартулар (ALTER TABLE ... UPDATE) мен жоюлар (ALTER TABLE ... DELETE) жүйеге елеулі жүктеме түсіреді және бұғаттауларға, артық жүктелуге, тіпті кестенің ұзақ уақытқа қолжетімсіз болуына себеп болуы мүмкін. Оларды тек ерекше жағдайларда ғана пайдаланыңыз.

Көбірек пайдалы практикалар ClickHouse құжаттамасында.