Перейти к основному содержанию

Цель

В этом руководстве вы узнаете, как:
  • Загрузить данные OpenCelliD в ClickHouse
  • Подключить Apache Superset к ClickHouse
  • Создать панель мониторинга на основе данных из датасета
Ниже показан предварительный просмотр панели мониторинга, созданной в этом руководстве:

Получение набора данных

Этот набор данных взят из OpenCelliD — крупнейшей в мире открытой базы данных базовых станций сотовой связи. По состоянию на 2021 год он содержит более 40 миллионов записей о базовых станциях сотовой связи (GSM, LTE, UMTS и т. д.) по всему миру, включая их географические координаты и метаданные (код страны, сеть и т. д.). Проект OpenCelliD распространяется по лицензии Creative Commons Attribution-ShareAlike 4.0 International, и мы повторно распространяем снимок этого набора данных на условиях той же лицензии. Актуальную версию набора данных можно скачать после авторизации.

Загрузите пример данных

ClickHouse Cloud предоставляет удобный способ загрузить этот набор данных из S3. Войдите в свою организацию ClickHouse Cloud или создайте бесплатную пробную учетную запись на ClickHouse.cloud.Выберите свой сервис, затем Data sources -> Predefined sample data.Выберите набор данных Cell Towers на вкладке Sample data и нажмите Load data:

Изучите схему таблицы cell_towers

DESCRIBE TABLE cell_towers
SQL-консольЕсли вам нужно подключение через SQL-клиент, у вашего сервиса ClickHouse Cloud есть встроенная веб- SQL-консоль; разверните раздел Подключение к SQL-консоли ниже, чтобы узнать подробности.
В списке сервисов ClickHouse Cloud выберите нужный сервис.Вы будете перенаправлены в SQL-консоль.
Это результат выполнения DESCRIBE. Ниже в этом руководстве объясняется, почему выбраны именно такие типы полей.
┌─name──────────┬─type──────────────────────────────────────────────────────────────────┬
│ radio         │ Enum8('' = 0, 'CDMA' = 1, 'GSM' = 2, 'LTE' = 3, 'NR' = 4, 'UMTS' = 5) │
│ mcc           │ UInt16                                                                │
│ net           │ UInt16                                                                │
│ area          │ UInt16                                                                │
│ cell          │ UInt64                                                                │
│ unit          │ Int16                                                                 │
│ lon           │ Float64                                                               │
│ lat           │ Float64                                                               │
│ range         │ UInt32                                                                │
│ samples       │ UInt32                                                                │
│ changeable    │ UInt8                                                                 │
│ created       │ DateTime                                                              │
│ updated       │ DateTime                                                              │
│ averageSignal │ UInt8                                                                 │
└───────────────┴───────────────────────────────────────────────────────────────────────┴

Выполните несколько запросов для примера

  1. Количество базовых станций сотовой связи по типам:
SELECT radio, count() AS c FROM cell_towers GROUP BY radio ORDER BY c DESC
┌─radio─┬────────c─┐
│ UMTS  │ 20686487 │
│ LTE   │ 12101148 │
│ GSM   │  9931304 │
│ CDMA  │   556344 │
│ NR    │      867 │
└───────┴──────────┘

5 rows in set. Elapsed: 0.011 sec. Processed 43.28 million rows, 43.28 MB (3.83 billion rows/s., 3.83 GB/s.)
  1. Базовые станции сотовой связи по мобильному коду страны (MCC):
SELECT mcc, count() FROM cell_towers GROUP BY mcc ORDER BY count() DESC LIMIT 10
┌─mcc─┬─count()─┐
│ 310 │ 5024650 │
│ 262 │ 2622423 │
│ 250 │ 1953176 │
│ 208 │ 1891187 │
│ 724 │ 1836150 │
│ 404 │ 1729151 │
│ 234 │ 1618924 │
│ 510 │ 1353998 │
│ 440 │ 1343355 │
│ 311 │ 1332798 │
└─────┴─────────┘

10 rows in set. Elapsed: 0.019 sec. Processed 43.28 million rows, 86.55 MB (2.33 billion rows/s., 4.65 GB/s.)
Исходя из приведённого выше запроса и списка MCC, больше всего базовых станций сотовой связи находится в США, Германии и России. Возможно, вам стоит создать словарь в ClickHouse, чтобы расшифровать эти значения.

Сценарий использования: добавление геоданных

С помощью функции pointInPolygon.
  1. Создайте таблицу, в которой мы будем хранить полигоны:
CREATE TABLE moscow (polygon Array(Tuple(Float64, Float64)))
ORDER BY polygon;
  1. Это примерный контур Москвы (без «Новой Москвы»):
INSERT INTO moscow VALUES ([(37.84172564285271, 55.78000432402266),
(37.8381207618713, 55.775874525970494), (37.83979446823122, 55.775626746008065), (37.84243326983639, 55.77446586811748), (37.84262672750849, 55.771974101091104), (37.84153238623039, 55.77114545193181), (37.841124690460184, 55.76722010265554),
(37.84239076983644, 55.76654891107098), (37.842283558197025, 55.76258709833121), (37.8421759312134, 55.758073999993734), (37.84198330422974, 55.75381499999371), (37.8416827275085, 55.749277102484484), (37.84157576190186, 55.74794544108413),
(37.83897929098507, 55.74525257875241), (37.83739676451868, 55.74404373042019), (37.838732481460525, 55.74298009816793), (37.841183997352545, 55.743060321833575), (37.84097476190185, 55.73938799999373), (37.84048155819702, 55.73570799999372),
(37.840095812164286, 55.73228210777237), (37.83983814285274, 55.73080491981639), (37.83846476321406, 55.729799917464675), (37.83835745269769, 55.72919751082619), (37.838636380279524, 55.72859509486539), (37.8395161005249, 55.727705075632784),
(37.83897964285276, 55.722727886185154), (37.83862557539366, 55.72034817326636), (37.83559735744853, 55.71944437307499), (37.835370708803126, 55.71831419154461), (37.83738169402022, 55.71765218986692), (37.83823396494291, 55.71691750159089),
(37.838056931213345, 55.71547311301385), (37.836812846557606, 55.71221445615604), (37.83522525396725, 55.709331054395555), (37.83269301586908, 55.70953687463627), (37.829667367706236, 55.70903403789297), (37.83311126588435, 55.70552351822608),
(37.83058993121339, 55.70041317726053), (37.82983872750851, 55.69883771404813), (37.82934501586913, 55.69718947487017), (37.828926414016685, 55.69504441658371), (37.82876530422971, 55.69287499999378), (37.82894754100031, 55.690759754047335),
(37.827697554878185, 55.68951421135665), (37.82447346292115, 55.68965045405069), (37.83136543914793, 55.68322046195302), (37.833554015869154, 55.67814012759211), (37.83544184655761, 55.67295011628339), (37.837480388885474, 55.6672498719639),
(37.838960677246064, 55.66316274139358), (37.83926093121332, 55.66046999999383), (37.839025050262435, 55.65869897264431), (37.83670784390257, 55.65794084879904), (37.835656529083245, 55.65694309303843), (37.83704060449217, 55.65689306460552),
(37.83696819873806, 55.65550363526252), (37.83760389616388, 55.65487847246661), (37.83687972750851, 55.65356745541324), (37.83515216004943, 55.65155951234079), (37.83312418518067, 55.64979413590619), (37.82801726983639, 55.64640836412121),
(37.820614174591, 55.64164525405531), (37.818908190475426, 55.6421883258084), (37.81717543386075, 55.64112490388471), (37.81690987037274, 55.63916106913107), (37.815099354492155, 55.637925371757085), (37.808769150787356, 55.633798276884455),
(37.80100123544311, 55.62873670012244), (37.79598013491824, 55.62554336109055), (37.78634567724606, 55.62033499605651), (37.78334147619623, 55.618768681480326), (37.77746201055901, 55.619855533402706), (37.77527329626457, 55.61909966711279),
(37.77801986242668, 55.618770300976294), (37.778212973541216, 55.617257701952106), (37.77784818518065, 55.61574504433011), (37.77016867724609, 55.61148576294007), (37.760191219573976, 55.60599579539028), (37.75338926983641, 55.60227892751446),
(37.746329965606634, 55.59920577639331), (37.73939925396728, 55.59631430313617), (37.73273665739439, 55.5935318803559), (37.7299954450912, 55.59350760316188), (37.7268679946899, 55.59469840523759), (37.72626726983634, 55.59229549697373),
(37.7262673598022, 55.59081598950582), (37.71897193121335, 55.5877595845419), (37.70871550793456, 55.58393177431724), (37.700497489410374, 55.580917323756644), (37.69204305026244, 55.57778089778455), (37.68544477378839, 55.57815154690915),
(37.68391050793454, 55.57472945079756), (37.678803592590306, 55.57328235936491), (37.6743402539673, 55.57255251445782), (37.66813862698363, 55.57216388774464), (37.617927457672096, 55.57505691895805), (37.60443099999999, 55.5757737568051),
(37.599683515869145, 55.57749105910326), (37.59754177842709, 55.57796291823627), (37.59625834786988, 55.57906686095235), (37.59501783265684, 55.57746616444403), (37.593090671936025, 55.57671634534502), (37.587018007904, 55.577944600233785),
(37.578692203704804, 55.57982895000019), (37.57327546607398, 55.58116294118248), (37.57385012109279, 55.581550362779), (37.57399562266922, 55.5820107079112), (37.5735356072979, 55.58226289171689), (37.57290393054962, 55.582393529795155),
(37.57037722355653, 55.581919415056234), (37.5592298306885, 55.584471614867844), (37.54189249206543, 55.58867650795186), (37.5297256269836, 55.59158133551745), (37.517837865081766, 55.59443656218868), (37.51200186508174, 55.59635625174229),
(37.506808949737554, 55.59907823904434), (37.49820432275389, 55.6062944994944), (37.494406071441674, 55.60967103463367), (37.494760001358024, 55.61066689753365), (37.49397137107085, 55.61220931698269), (37.49016528606031, 55.613417718449064),
(37.48773249206542, 55.61530616333343), (37.47921386508177, 55.622640129112334), (37.470652153442394, 55.62993723476164), (37.46273446298218, 55.6368075123157), (37.46350692265317, 55.64068225239439), (37.46050283203121, 55.640794546982576),
(37.457627470916734, 55.64118904154646), (37.450718034393326, 55.64690488145138), (37.44239252645875, 55.65397824729769), (37.434587576721185, 55.66053543155961), (37.43582144975277, 55.661693766520735), (37.43576786245721, 55.662755031737014),
(37.430982915344174, 55.664610641628116), (37.428547447097685, 55.66778515273695), (37.42945134592044, 55.668633314343566), (37.42859571562949, 55.66948145750025), (37.4262836402282, 55.670813882451405), (37.418709037048295, 55.6811141674414),
(37.41922139651101, 55.68235377885389), (37.419218771842885, 55.68359335082235), (37.417196501327446, 55.684375235224735), (37.41607020370478, 55.68540557585352), (37.415640857147146, 55.68686637150793), (37.414632153442334, 55.68903015131686),
(37.413344899475064, 55.690896881757396), (37.41171432275391, 55.69264232162232), (37.40948282275393, 55.69455101638112), (37.40703674603271, 55.69638690385348), (37.39607169577025, 55.70451821283731), (37.38952706878662, 55.70942491932811),
(37.387778313491815, 55.71149057784176), (37.39049275399779, 55.71419814298992), (37.385557272491454, 55.7155489617061), (37.38388335714726, 55.71849856042102), (37.378368238098155, 55.7292763261685), (37.37763597123337, 55.730845879211614),
(37.37890062088197, 55.73167906388319), (37.37750451918789, 55.734703664681774), (37.375610832015965, 55.734851959522246), (37.3723813571472, 55.74105626086403), (37.37014935714723, 55.746115620904355), (37.36944173016362, 55.750883999993725),
(37.36975304365541, 55.76335905525834), (37.37244070571134, 55.76432079697595), (37.3724259757175, 55.76636979670426), (37.369922155757884, 55.76735417953104), (37.369892695770275, 55.76823419316575), (37.370214730163575, 55.782312184391266),
(37.370493611114505, 55.78436801120489), (37.37120164550783, 55.78596427165359), (37.37284851456452, 55.7874378183096), (37.37608325135799, 55.7886695054807), (37.3764587460632, 55.78947647305964), (37.37530000265506, 55.79146512926804),
(37.38235915344241, 55.79899647809345), (37.384344043655396, 55.80113596939471), (37.38594269577028, 55.80322699999366), (37.38711208598329, 55.804919036911976), (37.3880239841309, 55.806610999993666), (37.38928977249147, 55.81001864976979),
(37.39038389947512, 55.81348641242801), (37.39235781481933, 55.81983538336746), (37.393709457672124, 55.82417822811877), (37.394685720901464, 55.82792275755836), (37.39557615344238, 55.830447148154136), (37.39844478226658, 55.83167107969975),
(37.40019761214057, 55.83151823557964), (37.400398790382326, 55.83264967594742), (37.39659544313046, 55.83322180909622), (37.39667059524539, 55.83402792148566), (37.39682089947515, 55.83638877400216), (37.39643489154053, 55.83861656112751),
(37.3955338994751, 55.84072348043264), (37.392680272491454, 55.84502158126453), (37.39241188227847, 55.84659117913199), (37.392529730163616, 55.84816071336481), (37.39486835714723, 55.85288092980303), (37.39873052645878, 55.859893456073635),
(37.40272161111449, 55.86441833633205), (37.40697072750854, 55.867579567544375), (37.410007082016016, 55.868369880337), (37.4120992989502, 55.86920843741314), (37.412668021163924, 55.87055369615854), (37.41482461111453, 55.87170587948249),
(37.41862266137694, 55.873183961039565), (37.42413732540892, 55.874879126654704), (37.4312182698669, 55.875614937236705), (37.43111093783558, 55.8762723478417), (37.43332105622856, 55.87706546369396), (37.43385747619623, 55.87790681284802),
(37.441303050262405, 55.88027084462084), (37.44747234260555, 55.87942070143253), (37.44716141796871, 55.88072960917233), (37.44769797085568, 55.88121221323979), (37.45204320500181, 55.882080694420715), (37.45673176190186, 55.882346110794586),
(37.463383999999984, 55.88252729504517), (37.46682797486874, 55.88294937719063), (37.470014457672086, 55.88361266759345), (37.47751410450743, 55.88546991372396), (37.47860317658232, 55.88534929207307), (37.48165826025772, 55.882563306475106),
(37.48316434442331, 55.8815803226785), (37.483831555817645, 55.882427612793315), (37.483182967125686, 55.88372791409729), (37.483092277908824, 55.88495581062434), (37.4855716508179, 55.8875561994203), (37.486440636245746, 55.887827444039566),
(37.49014203439328, 55.88897899871799), (37.493210285705544, 55.890208937135604), (37.497512451065035, 55.891342397444696), (37.49780744510645, 55.89174030252967), (37.49940333499519, 55.89239745507079), (37.50018383334346, 55.89339220941865),
(37.52421672750851, 55.903869074155224), (37.52977457672118, 55.90564076517974), (37.53503220370484, 55.90661661218259), (37.54042858064267, 55.90714113744566), (37.54320461007303, 55.905645048442985), (37.545686966066306, 55.906608607018505),
(37.54743976120755, 55.90788552162358), (37.55796999999999, 55.90901557907218), (37.572711542327866, 55.91059395704873), (37.57942799999998, 55.91073854155573), (37.58502865872187, 55.91009969268444), (37.58739968913264, 55.90794809960554),
(37.59131567193598, 55.908713267595054), (37.612687423278814, 55.902866854295375), (37.62348079629517, 55.90041967242986), (37.635797880950896, 55.898141151686396), (37.649487626983664, 55.89639275532968), (37.65619302513125, 55.89572360207488),
(37.66294133862307, 55.895295577183965), (37.66874564418033, 55.89505457604897), (37.67375601586915, 55.89254677027454), (37.67744661901856, 55.8947775867987), (37.688347, 55.89450045676125), (37.69480554232789, 55.89422926332761),
(37.70107096560668, 55.89322256101114), (37.705962965606716, 55.891763491662616), (37.711885134918205, 55.889110234998974), (37.71682005026245, 55.886577568759876), (37.7199315476074, 55.88458159806678), (37.72234560316464, 55.882281005794134),
(37.72364385977171, 55.8809452036196), (37.725371142837474, 55.8809722706006), (37.727870902099546, 55.88037213862385), (37.73394330422971, 55.877941504088696), (37.745339592590376, 55.87208120378722), (37.75525267724611, 55.86703807949492),
(37.76919976190188, 55.859821640197474), (37.827835219574, 55.82962968399116), (37.83341438888553, 55.82575289922351), (37.83652584655761, 55.82188784027888), (37.83809213491821, 55.81612575504693), (37.83605359521481, 55.81460347077685),
(37.83632178569025, 55.81276696067908), (37.838623105812026, 55.811486181656385), (37.83912198147584, 55.807329380532785), (37.839079078033414, 55.80510270463816), (37.83965844708251, 55.79940712529036), (37.840581150787344, 55.79131399999368),
(37.84172564285271, 55.78000432402266)]);
  1. Проверьте, сколько в Москве базовых станций сотовой связи:
SELECT count() FROM cell_towers
WHERE pointInPolygon((lon, lat), (SELECT * FROM moscow))
┌─count()─┐
│  310463 │
└─────────┘

1 rows in set. Elapsed: 0.067 sec. Processed 43.28 million rows, 692.42 MB (645.83 million rows/s., 10.33 GB/s.)

Обзор схемы

Прежде чем создавать визуализации в Superset, ознакомьтесь со столбцами, которые будете использовать. Этот набор данных в основном содержит сведения о местоположении (долгота и широта) и типах радиосвязи мобильных сотовых вышек по всему миру. Описания столбцов можно найти на форуме сообщества. Ниже описаны столбцы, которые используются в визуализациях, создаваемых в этом руководстве. Ниже приведено описание столбцов с форума OpenCelliD:
ColumnDescription
radioПоколение технологии: CDMA, GSM, UMTS, 5G NR
mccКод страны мобильной сети: 204 — Нидерланды
lonДолгота: вместе с широтой указывает примерное местоположение вышки
latШирота: вместе с долготой указывает примерное местоположение вышки
mccЧтобы найти свой MCC, см. Mobile network codes и используйте три цифры из столбца Код страны мобильной сети.
Схема этой таблицы была разработана для компактного хранения на диске и быстрого выполнения запросов.
  • Данные radio хранятся в виде Enum8 (UInt8), а не строки.
  • mcc, или код страны мобильной сети, хранится как UInt16, поскольку диапазон значений известен: 1–999.
  • lon и lat имеют тип Float64.
Остальные поля не используются в запросах или визуализациях из этого руководства, но, если вам интересно, их описание есть на форуме, ссылка на который приведена выше.

Создайте визуализации с Apache Superset

Superset легко запустить в Docker. Если Superset у вас уже запущен, достаточно добавить ClickHouse Connect с помощью pip install clickhouse-connect. Если вам нужно установить Superset, откройте раздел Launch Apache Superset in Docker ниже.
В Superset есть инструкции по локальной установке Superset с помощью Docker Compose. После клонирования репозитория Apache Superset с GitHub вы можете запустить последнюю версию кода из ветки разработки или конкретный тег. Мы рекомендуем релиз 2.0.0, так как это последний релиз без пометки pre-release.Перед запуском docker compose нужно сделать несколько вещей:
  1. Добавить официальный драйвер ClickHouse Connect
  2. Получить API-ключ Mapbox и добавить его как переменную окружения (необязательно)
  3. Указать версию Superset для запуска
Приведенные ниже команды нужно выполнять из корневого каталога GitHub-репозитория superset.

Официальный драйвер ClickHouse Connect

Чтобы драйвер ClickHouse Connect был доступен в Superset, добавьте его в локальный файл зависимостей:
echo "clickhouse-connect" >> ./docker/requirements-local.txt

Mapbox

Это необязательно: в Superset можно строить данные о местоположении и без API-ключа Mapbox, но вы увидите сообщение о том, что нужно добавить ключ, а фоновое изображение карты будет отсутствовать (вы увидите только точки данных, но не саму карту). У Mapbox есть бесплатный уровень, если вы захотите его использовать.Некоторые примеры визуализаций, которые предлагается создать в руководствах, используют данные о местоположении, например широту и долготу. Superset поддерживает карты Mapbox. Чтобы использовать визуализации Mapbox, нужен API-ключ Mapbox. Зарегистрируйтесь на бесплатном уровне Mapbox и сгенерируйте API-ключ.Сделайте API-ключ доступным для Superset:
echo "MAPBOX_API_KEY=pk.SAMPLE-Use-your-key-instead" >> docker/.env-non-dev

Развертывание Superset версии 2.0.0

Чтобы развернуть релиз 2.0.0, выполните:
git checkout 2.0.0
TAG=2.0.0 docker-compose -f docker-compose-non-dev.yml pull
TAG=2.0.0 docker-compose -f docker-compose-non-dev.yml up
Чтобы создать панель мониторинга Superset с использованием набора данных OpenCelliD, выполните следующие действия:
  • Добавьте ваш сервис ClickHouse как базу данных Superset
  • Добавьте таблицу cell_towers как набор данных Superset
  • Создайте несколько диаграмм
  • Добавьте диаграммы на панель мониторинга

Добавьте свой сервис ClickHouse как базу данных в Superset

Чтобы подключиться к ClickHouse по HTTP(S), вам понадобится следующая информация:
Параметр(ы)Описание
HOST and PORTОбычно используется порт 8443 при использовании TLS и 8123 без TLS.
DATABASE NAMEПо умолчанию есть база данных default; используйте имя базы данных, к которой хотите подключиться.
USERNAME and PASSWORDПо умолчанию имя пользователя — default. Используйте имя пользователя, подходящее для вашего сценария использования.
Сведения о подключении для вашего сервиса ClickHouse Cloud доступны в консоли ClickHouse Cloud. Выберите сервис и нажмите Connect: Выберите HTTPS. Сведения о подключении будут показаны в примере команды curl. Если вы используете самоуправляемый ClickHouse, сведения о подключении задаёт ваш администратор ClickHouse. В Superset базу данных можно добавить, выбрав её тип, а затем указав сведения о подключении. Откройте Superset, нажмите + и в меню выберите Data, затем Connect database. Выберите ClickHouse Connect из списка:
Если ClickHouse Connect нет среди доступных вариантов, его нужно установить. Для этого выполните команду pip install clickhouse-connect. Дополнительная информация доступна здесь.

Добавьте сведения о подключении

Убедитесь, что при подключении к ClickHouse Cloud или другим системам ClickHouse, требующим использования SSL, параметр SSL включён.

Добавьте таблицу cell_towers как датасет Superset

В Superset датасет соответствует таблице в базе данных. Нажмите Add dataset и выберите свой сервис ClickHouse, базу данных, в которой находится таблица (default), а затем таблицу cell_towers:

Создайте несколько диаграмм

При добавлении диаграммы в Superset нужно указать датасет (cell_towers) и тип диаграммы. Поскольку датасет OpenCelliD содержит координаты долготы и широты базовых станций сотовой связи, мы создадим диаграмму типа Map. Тип deck.gL Scatterplot хорошо подходит для этого датасета, так как он эффективно отображает на карте плотные наборы точек данных.

Укажите запрос для карты

Для deck.gl Scatterplot нужны значения долготы и широты; кроме того, к запросу можно применить один или несколько фильтров. В этом примере используются два фильтра: один — для базовых станций сотовой связи с технологией UMTS, другой — для значения Mobile country code, соответствующего Нидерландам. Поля lon и lat содержат долготу и широту: Добавьте фильтр mcc = 204 (или укажите любое другое значение mcc): Добавьте фильтр radio = 'UMTS' (или укажите любое другое значение radio; доступные варианты можно посмотреть в выводе DESCRIBE TABLE cell_towers): Вот полная конфигурация диаграммы с фильтрами radio = 'UMTS' и mcc = 204: Нажмите UPDATE CHART, чтобы построить визуализацию.

Добавьте диаграммы на панель мониторинга

На этом снимке экрана показано расположение базовых станций сотовой связи со стандартами LTE, UMTS и GSM. Все диаграммы создаются одинаково и добавляются на панель мониторинга.
Данные также доступны для интерактивных запросов в Песочнице ClickHouse.Этот пример автоматически подставит имя пользователя и даже сам запрос.Хотя в Песочнице ClickHouse нельзя создавать таблицы, вы можете выполнять все запросы и даже использовать Superset (при необходимости скорректируйте имя хоста и номер порта).
Последнее изменение 10 июня 2026 г.