Size: a a a

ClickHouse не тормозит

2020 August 25

מ

מיכאל in ClickHouse не тормозит
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"

metadata:
 name: "click"

spec:
 defaults:
   templates:
     volumeClaimTemplate: default
#      podTemplate: clickhouse:19.6
     serviceTemplate: chi-service-template

 configuration:
   zookeeper:
     nodes:
     - host: zk-cs
   users:
  clusters:
     - name: replicated
       layout:
         shardsCount: 2
         replicasCount: 2

 templates:
   volumeClaimTemplates:
     - name: default
       spec:
         storageClassName: secured
         accessModes:
           - ReadWriteOnce
         resources:
           requests:
             storage: 1024Gi
       persistentVolumeReclaimPolicy: Retain
   podTemplates:
     - name: clickhouse:lastest
       spec:
         containers:
           - name: clickhouse-pod
             image: yandex/clickhouse-server:latest
   serviceTemplates:
     - name: chi-service-template
       generateName: "{chi}"
       metadata:
         annotations:
           service.beta.kubernetes.io/aws-load-balancer-internal: "true"
       spec:
         ports:
           - name: http
             port: 8123
           - name: client
             port: 9000
         type: LoadBalancer
источник

מ

מיכאל in ClickHouse не тормозит
В мануале опператора ничего подобного я не нашел :(
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
מיכאל
В мануале опператора ничего подобного я не нашел :(
к авторам оператора, где-то эти пароли должны заданы
источник

מ

מיכאל in ClickHouse не тормозит
понял спасибо.
источник

VR

Vlad Radionov in ClickHouse не тормозит
подскажите плз, что может быть не так.
пытаюсь создать таблицу ReplacingMergeTree с первичным ключом отличным, от ключа сортировки.  но получаю ошибку Syntax error: failed at position 3479:
Expected one of: token, AND, OR, BETWEEN, IS, LIKE, NOT LIKE, IN, NOT IN, GLOBAL IN, GLOBAL NOT IN, Arrow, QuestionMark, SAMPLE BY, SETTINGS, INTO OUTFILE, FORMAT

позиция 3479 - буковка P в слове PRIMARY

CREATE TABLE views ON CLUSTER reports ( C_CONTEXT Nullable(UInt32), C_DISPOSITION Nullable(UInt32), C_DURATION Nullable(Int16), C_ID FixedString(16), C_TYPE Nullable(UInt32), C_UNIQUE Nullable(UInt8), C_WAITING Nullable(Int16), DU_ID FixedString(16), E_ACTION Nullable(String), E_CATEGORY Nullable(String), E_ID FixedString(16), E_LABEL Nullable(String), NON_INTERACTION Nullable(UInt8), PROJECT_ID FixedString(16), S_AD_GROUP_ID Nullable(UInt64), S_BROWSER_NAME UInt32, S_BROWSER_VERSION_1 UInt8, S_BROWSER_VERSION_2 UInt16, S_BROWSER_VERSION_3 UInt32, S_BROWSER_VERSION_4 UInt16, S_CAMPAIGN_ID Nullable(UInt64), S_DATE Date, S_DATETIME DateTime, S_DEVICE_OS UInt32, S_DEVICE_RESOLUTION_X UInt16, S_DEVICE_RESOLUTION_Y UInt16, S_DEVICE_TYPE Enum8('Tablet' = 1, 'Mobile' = 2, 'Computer' = 3), S_ET_DATETIME Nullable(DateTime), S_FIRST_VISIT Date, S_FORWARD Nullable(String), S_FROM Nullable(String), S_GEO_CITY String, S_GEO_COUNTRY String, S_ID FixedString(16), S_KEYWORD_ID Nullable(UInt64), S_POOL_ID Nullable(UInt32), S_TO Nullable(String), S_UTM_CAMPAIGN String, S_UTM_CONTENT String, S_UTM_MEDIUM String, S_UTM_SOURCE String, S_UTM_TERM String, U_ID FixedString(16), VERSION UInt16, V_ET_DATETIME Nullable(DateTime), V_AD_ID Nullable(UInt32), V_DATETIME Nullable(DateTime), V_DURATION Int32, V_EXIT_URL String, V_GCLID Nullable(String), V_ID FixedString(16), V_LANDING_URL String, V_SPENDING_CAMPAIGN Nullable(String), V_SPENDING_CLICKS Nullable(UInt32), V_SPENDING_CONVERSIONS Nullable(Float64), V_SPENDING_COST_AED Nullable(Float64), V_SPENDING_COST_AMD Nullable(Float64), V_SPENDING_COST_ARS Nullable(Float64), V_SPENDING_COST_AUD Nullable(Float64), V_SPENDING_COST_BGN Nullable(Float64), V_SPENDING_COST_BRL Nullable(Float64), V_SPENDING_COST_BTC Nullable(Float64), V_SPENDING_COST_BYN Nullable(Float64), V_SPENDING_COST_CAD Nullable(Float64), V_SPENDING_COST_CHF Nullable(Float64), V_SPENDING_COST_CNY Nullable(Float64), V_SPENDING_COST_CZK Nullable(Float64), V_SPENDING_COST_DKK Nullable(Float64), V_SPENDING_COST_EUR Nullable(Float64), V_SPENDING_COST_GBP Nullable(Float64), V_SPENDING_COST_HRK Nullable(Float64), V_SPENDING_COST_ILS Nullable(Float64), V_SPENDING_COST_INR Nullable(Float64), V_SPENDING_COST_ISK Nullable(Float64), V_SPENDING_COST_JPY Nullable(Float64), V_SPENDING_COST_KGS Nullable(Float64), V_SPENDING_COST_KZT Nullable(Float64), V_SPENDING_COST_MDL Nullable(Float64), V_SPENDING_COST_MXN Nullable(Float64), V_SPENDING_COST_NZD Nullable(Float64), V_SPENDING_COST_RON Nullable(Float64), V_SPENDING_COST_RSD Nullable(Float64), V_SPENDING_COST_RUB Nullable(Float64), V_SPENDING_COST_SAR Nullable(Float64), V_SPENDING_COST_SGD Nullable(Float64), V_SPENDING_COST_THB Nullable(Float64), V_SPENDING_COST_TJS Nullable(Float64), V_SPENDING_COST_TRY Nullable(Float64), V_SPENDING_COST_UAH Nullable(Float64), V_SPENDING_COST_USD Nullable(Float64), V_SPENDING_COST_UZS Nullable(Float64), V_SPENDING_COST_VND Nullable(Float64), V_SPENDING_COST_XAG Nullable(Float64), V_SPENDING_COST_XAU Nullable(Float64), V_SPENDING_COST_XPT Nullable(Float64), V_SPENDING_COST_ZAR Nullable(Float64), V_SPENDING_CURRENCY Nullable(String), V_SPENDING_GROUP Nullable(String), V_SPENDING_IMPRESSIONS Nullable(UInt32), V_SPENDING_KEYWORD Nullable(String), V_TITLE String, V_URL String ) ENGINE = ReplacingMergeTree('/clickhouse/tables/{node}/reports/views', '{replica}', VERSION) PARTITION BY toYYYYMM(S_DATE) ORDER BY (C_ID, E_ID, PROJECT_ID, S_DATETIME, S_ID, U_ID, V_ID, DU_ID) PRIMARY KEY (PROJECT_ID, S_DATETIME) SETTINGS index_granularity = 8192

что с ним может быть не так ?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Vlad Radionov
подскажите плз, что может быть не так.
пытаюсь создать таблицу ReplacingMergeTree с первичным ключом отличным, от ключа сортировки.  но получаю ошибку Syntax error: failed at position 3479:
Expected one of: token, AND, OR, BETWEEN, IS, LIKE, NOT LIKE, IN, NOT IN, GLOBAL IN, GLOBAL NOT IN, Arrow, QuestionMark, SAMPLE BY, SETTINGS, INTO OUTFILE, FORMAT

позиция 3479 - буковка P в слове PRIMARY

CREATE TABLE views ON CLUSTER reports ( C_CONTEXT Nullable(UInt32), C_DISPOSITION Nullable(UInt32), C_DURATION Nullable(Int16), C_ID FixedString(16), C_TYPE Nullable(UInt32), C_UNIQUE Nullable(UInt8), C_WAITING Nullable(Int16), DU_ID FixedString(16), E_ACTION Nullable(String), E_CATEGORY Nullable(String), E_ID FixedString(16), E_LABEL Nullable(String), NON_INTERACTION Nullable(UInt8), PROJECT_ID FixedString(16), S_AD_GROUP_ID Nullable(UInt64), S_BROWSER_NAME UInt32, S_BROWSER_VERSION_1 UInt8, S_BROWSER_VERSION_2 UInt16, S_BROWSER_VERSION_3 UInt32, S_BROWSER_VERSION_4 UInt16, S_CAMPAIGN_ID Nullable(UInt64), S_DATE Date, S_DATETIME DateTime, S_DEVICE_OS UInt32, S_DEVICE_RESOLUTION_X UInt16, S_DEVICE_RESOLUTION_Y UInt16, S_DEVICE_TYPE Enum8('Tablet' = 1, 'Mobile' = 2, 'Computer' = 3), S_ET_DATETIME Nullable(DateTime), S_FIRST_VISIT Date, S_FORWARD Nullable(String), S_FROM Nullable(String), S_GEO_CITY String, S_GEO_COUNTRY String, S_ID FixedString(16), S_KEYWORD_ID Nullable(UInt64), S_POOL_ID Nullable(UInt32), S_TO Nullable(String), S_UTM_CAMPAIGN String, S_UTM_CONTENT String, S_UTM_MEDIUM String, S_UTM_SOURCE String, S_UTM_TERM String, U_ID FixedString(16), VERSION UInt16, V_ET_DATETIME Nullable(DateTime), V_AD_ID Nullable(UInt32), V_DATETIME Nullable(DateTime), V_DURATION Int32, V_EXIT_URL String, V_GCLID Nullable(String), V_ID FixedString(16), V_LANDING_URL String, V_SPENDING_CAMPAIGN Nullable(String), V_SPENDING_CLICKS Nullable(UInt32), V_SPENDING_CONVERSIONS Nullable(Float64), V_SPENDING_COST_AED Nullable(Float64), V_SPENDING_COST_AMD Nullable(Float64), V_SPENDING_COST_ARS Nullable(Float64), V_SPENDING_COST_AUD Nullable(Float64), V_SPENDING_COST_BGN Nullable(Float64), V_SPENDING_COST_BRL Nullable(Float64), V_SPENDING_COST_BTC Nullable(Float64), V_SPENDING_COST_BYN Nullable(Float64), V_SPENDING_COST_CAD Nullable(Float64), V_SPENDING_COST_CHF Nullable(Float64), V_SPENDING_COST_CNY Nullable(Float64), V_SPENDING_COST_CZK Nullable(Float64), V_SPENDING_COST_DKK Nullable(Float64), V_SPENDING_COST_EUR Nullable(Float64), V_SPENDING_COST_GBP Nullable(Float64), V_SPENDING_COST_HRK Nullable(Float64), V_SPENDING_COST_ILS Nullable(Float64), V_SPENDING_COST_INR Nullable(Float64), V_SPENDING_COST_ISK Nullable(Float64), V_SPENDING_COST_JPY Nullable(Float64), V_SPENDING_COST_KGS Nullable(Float64), V_SPENDING_COST_KZT Nullable(Float64), V_SPENDING_COST_MDL Nullable(Float64), V_SPENDING_COST_MXN Nullable(Float64), V_SPENDING_COST_NZD Nullable(Float64), V_SPENDING_COST_RON Nullable(Float64), V_SPENDING_COST_RSD Nullable(Float64), V_SPENDING_COST_RUB Nullable(Float64), V_SPENDING_COST_SAR Nullable(Float64), V_SPENDING_COST_SGD Nullable(Float64), V_SPENDING_COST_THB Nullable(Float64), V_SPENDING_COST_TJS Nullable(Float64), V_SPENDING_COST_TRY Nullable(Float64), V_SPENDING_COST_UAH Nullable(Float64), V_SPENDING_COST_USD Nullable(Float64), V_SPENDING_COST_UZS Nullable(Float64), V_SPENDING_COST_VND Nullable(Float64), V_SPENDING_COST_XAG Nullable(Float64), V_SPENDING_COST_XAU Nullable(Float64), V_SPENDING_COST_XPT Nullable(Float64), V_SPENDING_COST_ZAR Nullable(Float64), V_SPENDING_CURRENCY Nullable(String), V_SPENDING_GROUP Nullable(String), V_SPENDING_IMPRESSIONS Nullable(UInt32), V_SPENDING_KEYWORD Nullable(String), V_TITLE String, V_URL String ) ENGINE = ReplacingMergeTree('/clickhouse/tables/{node}/reports/views', '{replica}', VERSION) PARTITION BY toYYYYMM(S_DATE) ORDER BY (C_ID, E_ID, PROJECT_ID, S_DATETIME, S_ID, U_ID, V_ID, DU_ID) PRIMARY KEY (PROJECT_ID, S_DATETIME) SETTINGS index_granularity = 8192

что с ним может быть не так ?
1. КХ очень древний
2. PRIMARY KEY может быть только префиксом ORDER BY
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
т.е. например
ORDER BY       (C_ID, E_ID, PROJECT_ID, S_DATETIME, S_ID, U_ID, V_ID, DU_ID)
PRIMARY KEY (C_ID, E_ID)
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
ORDER BY задает как мержить и сортировать для хранения на диске
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
PRIMARY KEY задает что входит в главный индекс
источник

VR

Vlad Radionov in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
т.е. например
ORDER BY       (C_ID, E_ID, PROJECT_ID, S_DATETIME, S_ID, U_ID, V_ID, DU_ID)
PRIMARY KEY (C_ID, E_ID)
сделал вот так
PRIMARY KEY (C_ID, E_ID, PROJECT_ID, S_DATETIME)
с тем же ключом сортировки. ошибка не поменялась (
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Vlad Radionov
сделал вот так
PRIMARY KEY (C_ID, E_ID, PROJECT_ID, S_DATETIME)
с тем же ключом сортировки. ошибка не поменялась (
1. КХ очень древний
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
1 и 2 не связаны
источник

VR

Vlad Radionov in ClickHouse не тормозит
понятно ( спасибо
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
может сервер свежий, но клиент древний и не знает про синтаксис PRIMARY KEY
источник

IK

Ilona Knizhnikova in ClickHouse не тормозит
Привет!
Подскажите, а можно ли получить инфу, которую дает /replicas_status sql'ем?
В replicas есть размер очереди queue_size. Будет ли вот такой запрос будет стабильно показывать 0 всегда, когда  /replicas_status на этот же хост выдало бы 200 (с поправкой на то, что replicas_status видимо 200 только если все таблицы актуальны?), или в очереди может что-то быть, даже если реплика актуальна/ничего не быть на отстающей реплике?
SELECT count(*) FROM system.replicas where queue_size = 0 and table = :table and replica_name = hostName()
источник

И

Иван in ClickHouse не тормозит
Ilona Knizhnikova
Привет!
Подскажите, а можно ли получить инфу, которую дает /replicas_status sql'ем?
В replicas есть размер очереди queue_size. Будет ли вот такой запрос будет стабильно показывать 0 всегда, когда  /replicas_status на этот же хост выдало бы 200 (с поправкой на то, что replicas_status видимо 200 только если все таблицы актуальны?), или в очереди может что-то быть, даже если реплика актуальна/ничего не быть на отстающей реплике?
SELECT count(*) FROM system.replicas where queue_size = 0 and table = :table and replica_name = hostName()
Есть таблицы системные replication_queue и replicas
источник

IK

Ilona Knizhnikova in ClickHouse не тормозит
Иван
Есть таблицы системные replication_queue и replicas
М, в доке поиск по replication_queue показывает только start-stop и это явно не про таблицу. Можешь направить, где о ней почитать можно?
источник

И

Иван in ClickHouse не тормозит
Ilona Knizhnikova
Привет!
Подскажите, а можно ли получить инфу, которую дает /replicas_status sql'ем?
В replicas есть размер очереди queue_size. Будет ли вот такой запрос будет стабильно показывать 0 всегда, когда  /replicas_status на этот же хост выдало бы 200 (с поправкой на то, что replicas_status видимо 200 только если все таблицы актуальны?), или в очереди может что-то быть, даже если реплика актуальна/ничего не быть на отстающей реплике?
SELECT count(*) FROM system.replicas where queue_size = 0 and table = :table and replica_name = hostName()
наличие записей в очереди репликации - нормальное поведение, потому что сразу после инсерта будет лаг как раз на этот самый insert, надо смотреть конкретную таблицу и выяснять размер допустимого для вас лага
источник

IK

Ilona Knizhnikova in ClickHouse не тормозит
Иван
наличие записей в очереди репликации - нормальное поведение, потому что сразу после инсерта будет лаг как раз на этот самый insert, надо смотреть конкретную таблицу и выяснять размер допустимого для вас лага
То есть в точности сымитировать replicas_status не выйдет?
источник

И

Иван in ClickHouse не тормозит
https://clickhouse.tech/docs/en/operations/settings/settings/#settings-max_replica_delay_for_distributed_queries
Насколько я вижу - статус зависит от этой настройки
источник