Во время перезагрузки реплицированной базы данных MySQL в Clickhouse, используя «clickhouse- mysql», я сталкиваюсь с «Слишком много разделов для одного блока INSERT», и мне кажется, что я не могу прогрессировать.
Пока что некоторые вещи, которые я пробовал:
- устанавливают "max_partitions_per_insert_block" в ZERO, чтобы посмотреть, пройдет ли он.
- с использованием --mempool-max-rows до 5000, 10.000 и 20.000, чтобы пропустить загрузку по умолчанию 100.000
- с использованием PARTITION BY toYYYYMMDD (созданного) при создании таблицы
Таблица Clickhouse создается как, что очень похоже на то, как автоматическое создание c (--create-table) было за исключением того, что оно пропустило несколько типов NULLABLE .:
CREATE TABLE DB.DB__main (
`id` Int64,
`user_id` Int64,
`screenname` String,
`created` DateTime,
`tweet_id` Int64,
`tweet` String,
`retweet_count` Nullable(Int32),
`mediastatus` Nullable(String),
`country` Nullable(String),
`countrycode` Nullable(String),
`city` Nullable(String),
`latitude0` Nullable(String),
`longitude0` Nullable(String),
`latitude1` Nullable(String),
`longitude1` Nullable(String),
`latitude2` Nullable(String),
`longitude2` Nullable(String),
`latitude3` Nullable(String),
`longitude3` Nullable(String),
`datetime` DateTime,
`datetime_update` Nullable(DateTime),
`status` Nullable(String),
`div0` Nullable(String),
`div1` Nullable(String),
`div2` Nullable(Int64),
`datasource` Nullable(String)
) ENGINE = ReplacingMergeTree() PARTITION BY toYYYYMM(created) ORDER BY (id, user_id, screenname, created, tweet_id, datetime)
Кроме того, почему схема повторяет DB.DB__tablename? У меня сложилась странная ситуация, когда я впервые начал использовать Clickhouse и clickhouse- mysql --create-table. Он остановился, когда должен был начаться перенос контента, и потребовалось некоторое время, прежде чем я понял, что имя таблицы изменилось с "schema". "Table-name" на "schema". "Schema__table-name". После переименования имен таблиц можно запустить --migrate-table.