Обсуждаем ClickHouse
значит у вас ни один кластер не поеределен
У вас есть возможность конфигурацию менять?
Не надо такое спрашивать у Гопоты.
Хочется генеративного? Есть Ask AI в документации КХ
Пытаюсь понять, как в CH создать аналог Greenplum табл-ы DISTRIBUTD RANDOMLY, гже каждая строка падает на случайны шард ?
Если это годится, то что д.б. в 'cluster_name' ? :
-- 1. Создаём локальную таблицу (на каждом узле)Читать полностью…
CREATE TABLE local_table (
id UInt32,
data String
) ENGINE = MergeTree()
ORDER BY id;
-- 2. Создаём распределённую таблицу, которая раскидывает данные случайным образом
CREATE TABLE distributed_table AS local_table
ENGINE = Distributed(
'cluster_name', -- имя кластера, которое вы задаёте при настройке
database_name, -- база данных
local_table, -- локальная таблица
rand() % 8 -- распределение по случайным числам (например, 8 частей)
10x! numbers(1,3) - работает, sequence(1, 10) - нет
Читать полностью…В ClickHouse нет прямого аналога функции generate_series
, как в PostgreSQL. Однако, вы можете создать аналогичную функциональность с помощью других методов.
Вот несколько способов, как можно сгенерировать последовательность чисел в ClickHouse:
1. Использование arrayJoin
и array
:
Вы можете создать массив и затем использовать arrayJoin
для его разворачивания.
SELECT arrayJoin(array(1, 2, 3, 4, 5)) AS number
numbers
:numbers
, которая генерирует последовательность чисел.SELECT number
FROM numbers(10) -- Генерирует числа от 0 до 9
sequence
(начиная с версии 21.8):sequence
для генерации последовательностей.SELECT sequence(1, 10) AS numbers
SELECT number + 1 AS number
FROM numbers(10) -- Генерирует числа от 0 до 9, добавляем 1
generate_series
.
Читать полностью…
Взлетел -) версию WSL с 1 до 2 забыл поднять
Читать полностью…вот да - это и остается. просто было интересно реально ли сразу сгенерить. Спасибо за хелп!
Читать полностью…спасибо за ответ. да, именно так и пробовал. все упирается в ошибку: Expected literal, got concat. Т.е. если даже оборачивать это все через явный concat() валится та же ошибка.
Читать полностью…Если source-табличка тут же на том же инстансе и тех же дисках, и распределение запросов по ключам равномерное (нет более частых) - то нет смысла и только в память?
Читать полностью…Подскажите, я правильно понимаю, словари с direct/complex_keys_direct layout по производительности не отличаются от прямых запросов в source, просто позволяют использовать словарные функции?
Читать полностью…#вакансия #vacancy #DBA #ClickHouse #igaming #Cyprus #Middle
Компания: Tribe
Локация и формат работы: Лимассол
Позиция: Middle DBA with ClickHouse
Компенсация: обсуждаем индивидуально
Описание продукта и задач: Огромный и увлекательный продукт в сфере онлайн-развлечений от крупнейшего мирового холдинга в сфере igaming.
🔻Вы:
- от 2 лет опыта с ClickHouse (движки, индексы, репликация, шардинг)
- опыт работы с Linux, Bash, SQL
- опыт работы с системами мониторинга
- soft-skills на отличном уровне
- позитив, юмор и рок:)
🔻Чем будете заниматься?
- Проектирование архитектуры хранилищ данных
- Сопровождение существующих кластеров ClickHouse
- Консультации и поддержка разработчиков ПО
- Конфигурирование и оптимизация инстансов ClickHouse
- Настройка и оптимизация процессов репликации и шардинга, конфигурация Zookeeper
- Обеспечение качества данных, создание и поддержка метрик QA
🔻Дополнительный плюс:
- базовые навыки программирования на Python
- опыт работы с системами управления конфигурацией, такими как Ansible, Puppet или SaltStack
- продвинутое знание и опыт работы с реляционными СУБД: MySQL и/или PostgreSQL
Что мы готовы предложить:
🔻Мы:
- годовой бонус по результатам работы
- помощь с релокацией, оформлением визы для Вас и членов семьи
- беспроцентная рассрочка на покупку авто от компании
- оплачиваемый отпуск по законам Кипра
- оплачиваемый спорт
- частичная оплата английского
- корпоративное питание в офисе (завтраки, обеды)
- офисный спортзал
- оплата выставок, конференций
- технически сложные задачи и возможность развиваться как вертикально, так и горизонтально
📌контакт: @DzmitryS6
Всем привет.
Помогите с копированием данных из таблицы между двумя clickhouse. Экспорт данных из таблицы будет делаться с ClickHouse версии 23.10.2.13. Импорт данных будет на ClickHouse версии 25.5.2.47. Как правильно скопировать данные и потом их импортировать?
расскажите пожалуйста о нем, чтобы другие тоже могли потом поправить
Читать полностью…уверены что мутацию в нужном сервере запускаете?
Читать полностью…SELECT hostName(), * FROM clusterAllReplicas('cluster-name',system.mutations) WHERE mutations_id='0000000018' FORMAT VerticalЧитать полностью…
А если SELECT count(*) FROM system.clusters = 0 ?
Читать полностью…в cluster_name должно быть имя кластера из <remote_servers> секции конфига
см.
SELECT * FROM system.clustersЧитать полностью…
супер, значит на простых вопросах гпт хотяб в 50% попадает
Читать полностью…Есть
https://fiddle.clickhouse.com/cd86748a-b8fc-420a-9729-a1d2f9587044
В CH есть аналог generate_series из PG ? Вот этот вариант не рабочий или чего-то не знаю ? Версия БД 25.6.1
Читать полностью…Помогите ньюбу: Ставлю CH по https://clickhouse.com/docs/knowledgebase/install-clickhouse-windows10 на Ubuntu под виндой через wsl.
Дошел до пункта
Start the clickhouse server:
Это корректный высер ?
ок. собирайте литерал на стороне приложения тогда
Читать полностью…а что именно не получается?
как именно выглядел запрос?
BACKUP TABLE data TO S3('https://mars-doc-test.s3.amazonaws.com/backup-S3/my_backup-' || formatDateTime(now(), '%Y-%m-%d'), 'ABC123', 'Abc+123')
ну там в зависимости от source
стараются сделать batch запрос
WHERE id IN (...)
для redis например делается MGET и т.п.
напрямую смысла не имеют, обычно поверх еще cached добавляется... тогда если cache hit rate хороший, то работает норм и памяти может меньше есть...
Добрый день коллеги. А подскажите пожалуйста есть ли возможность бэкапировать архив в S3 с именем содержащим дату/время? т.е. что-то по
типу:
BACKUP TABLE data TO S3('https://mars-doc-test.s3.amazonaws.com/backup-S3/my_backup-{current_date}', 'ABC123', 'Abc+123')
вы можете сделать просто insert into select from remote()
Читать полностью…в итоге из двух таблиц через union скачивают в одну и там уже делают delete нужных строк, в два действия в общем
Читать полностью…коллеги говорят что нашли обходной путь, спасибо
Читать полностью…очень странно, там какая-то старая мутация с таким id
Row 1:Читать полностью…
──────
hostName(): host
database: database
table: table
mutation_id: 0000000018
command: (UPDATE SenderType = 'HUB' WHERE (SenderType = '') AND (SenderId = 'ba979f34-f025-4ce6-b10b-f6cfff73063d'))
create_time: 2025-04-29 03:08:50
block_numbers.partition_id: ['202502','202503','202504']
block_numbers.number: [19,19,27]
parts_to_do_names: []
parts_to_do: 0
is_done: 1
is_killed: 0
latest_failed_part:
latest_fail_time: 1970-01-01 00:00:00
latest_fail_reason:
latest_fail_error_code_name:
1 row in set. Elapsed: 0.126 sec. Processed 5.04 thousand rows, 8.19 MB (40.15 thousand rows/s., 65.23 MB/s.)
Peak memory usage: 15.35 MiB.
тогда
SELECT hostName(), * FROM clusterAllReplicas('cluster-name',system.mutations) WHERE is_done=0 FORMAT VerticalЧитать полностью…