3 шарда по 2 реплики, внутри каждого шарда replicated табличка,
но есть проблема что в один шард в разы больше пишется данных, хотя запись происходит в distributed табличку следующей структуры:
CREATE TABLE relap_logs.adroom_log
(
`creative_id` Int64,
`for_url_id` UInt32,
`position` UInt16,
`uid` FixedString(8),
`front_uid` FixedString(8),
`is_new_uid` UInt8,
`rec_id` FixedString(19),
`geo_code` String,
`country_code` FixedString(2),
`region_code` FixedString(3),
`city_name` String,
`device_type` Enum8('mac' = 1, 'pc' = 2, 'other_desktop' = 3, 'iphone' = 4, 'android_phone' = 5, 'ipad' = 6, 'android_tablet' = 7, 'other_mobile' = 8) DEFAULT CAST('other_desktop', 'Enum8(\'mac\' = 1, \'pc\' = 2, \'other_desktop\' = 3, \'iphone\' = 4, \'android_phone\' = 5, \'ipad\' = 6, \'android_tablet\' = 7, \'other_mobile\' = 8)'),
`alg_id` UInt16,
`adroom_id` UInt32,
`is_reload` UInt8,
`is_valid_session` UInt8,
`ctime` DateTime,
`event_date` Date,
`domain_id` UInt32,
`widget_id` UInt32,
`event_type` Enum8('show' = 1, 'view' = 2, 'click' = 3),
`adroom_type` Enum8('local' = 1, 'net' = 2, 'local2' = 3),
`payfor` Enum8('cpc' = 1, 'cpm' = 2, 'cpv' = 3, 'promo' = 4),
`relap_revenue` Float32,
`publisher_revenue` Float32,
`brand_safety_categories` Array(String)
)
ENGINE = Distributed('relap_cluster_1', 'relap_logs', 'adroom_log_replicated', adroom_id)
может кто-то подскажет, по какому принципу он распехивает по шардам данные основываясь на ключе шардирования?
Или где я мог ошибиться?(
остаток от деления adroom_id на число шардов, перекосы по данным лекго могут в таком случае
блин, а вот это оч странно, посмотрел у меня там 83501 уникальных значений adroom_id (по которому шардируется)
а какая разница сколько уникальных значений? тут важно количество записей
да, вы правы, спасибо! т.е. по факту похоже что я где-то много пишу с одним и тем-же значением adroom_id пойду смотреть
Обсуждают сегодня