Foursquare изменил способ доступа к OS Places. В предыдущих версиях этого руководства выполнялись запросы к файлам с фиксированной датой в публичном S3 бакете; теперь доступ предоставляется через портал Foursquare Places и аутентифицированный каталог Iceberg. Подробнее см. документацию Foursquare по доступу к OS Places.
Перед началом работы
- аккаунт на портале Foursquare Places
- токен доступа, созданный на вкладке Access Data набора данных OS Places
Подключение к каталогу Foursquare
<YOUR_ACCESS_TOKEN> в следующем запросе своим токеном:
Query
places_os отражает текущую
опубликованную версию Foursquare, а не версию Parquet, привязанную к определённой дате, поэтому её строки и схема могут
меняться со временем. Поэтому запросы без предложения ORDER BY могут возвращать другие
строки выборки, чем показанные в этом руководстве результаты.
Проверьте подключение
places_os:
Query
Response
Изучение данных
Query
Response
DESCRIBE, чтобы просмотреть схему таблицы:
Query
Response
Загрузите данные в ClickHouse
clickhouse-server или в ClickHouse Cloud.
Создайте таблицу MergeTree со столбцами, закодированными по словарю, и материализованными координатами в проекции Web Mercator:
Query
LowCardinality,
который хранит повторяющиеся значения с кодированием с использованием словаря. Такое представление может значительно
повысить производительность SELECT-запросов.
Два материализованных столбца типа UInt32 — mercator_x и mercator_y — преобразуют широту и
долготу в проекцию Web Mercator,
что упрощает разбиение карты на тайлы:
longitude + 180сдвигает диапазон долготы с [-180, 180] к [0, 360].- Деление на 360 нормализует значение до диапазона от 0 до 1.
- Умножение на
0xFFFFFFFF— максимальное 32-битное беззнаковое целое число — масштабирует нормализованное значение до всего диапазона 32-битного целого числа.
latitude + 90сдвигает диапазон широты с [-90, 90] к [0, 180].- Деление на 360 и умножение на
piпреобразуют значение в радианы для тригонометрических функций. log(tan(...))применяет основную формулу проекции Меркатора.- Умножение на
0xFFFFFFFFмасштабирует результат до всего диапазона 32-битного целого числа.
MATERIALIZED предписывает ClickHouse вычислять эти значения при вставке данных,
без необходимости включать эти столбцы в исходные данные.
Таблица упорядочена по mortonEncode(mercator_x, mercator_y), что создаёт кривую заполнения
пространства Z-порядка и упорядочивает данные по пространственной близости:
minmax дополнительно ускоряют пространственную фильтрацию:
Query
unresolved_flags, поскольку этот столбец
не нужен локальной таблице, и отфильтровывает строки без координат, так как их
нельзя разместить на карте. Другие допускающие NULL значения источника остаются NULL в локальной таблице.
Визуализируйте данные
Модель доступа Foursquare изменилась с момента создания этих визуализаций.
исходное интерактивное представление Places
создано до введения текущей модели доступа и приведено для исторической справки, однако оно может больше не
отображать данные Places. Изображения ниже сохранены в качестве исторических примеров.