Перейти к основному содержанию
Выборка данных о нью-йоркском такси включает более 3 миллиардов поездок на такси и автомобилях по найму (Uber, Lyft и т. д.), начавшихся в Нью-Йорке с 2009 года. В этом руководстве «Начало работы» используется выборка из 3 млн строк. Полный набор данных можно получить несколькими способами:
  • вставить данные напрямую в ClickHouse Cloud из S3 или GCS
  • скачать подготовленные партиции
  • либо выполнять запросы ко всему набору данных в нашей демо-среде на sql.clickhouse.com.
Приведённые ниже примеры запросов были выполнены на продакшн-экземпляре ClickHouse Cloud. Подробнее см. в разделе “Характеристики Песочницы ClickHouse”.

Создайте таблицу trips

Начните с создания таблицы для поездок на такси:

Загружайте данные напрямую из объектного хранилища

Пользователи могут взять небольшую часть данных (3 миллиона строк), чтобы ознакомиться с ними. Данные находятся в файлах в формате TSV в объектном хранилище и легко загружаются в ClickHouse Cloud с помощью table function s3. Одни и те же данные хранятся как в S3, так и в GCS; выберите любую вкладку.
Следующая команда потоково загружает три файла из S3 бакета в таблицу trips_small (синтаксис {0..2} — это шаблон для значений 0, 1 и 2):

Примеры запросов

Следующие запросы выполняются на выборке, описанной выше. Вы можете запускать эти примеры запросов на полном наборе данных в sql.clickhouse.com, изменив приведённые ниже запросы так, чтобы они использовали таблицу nyc_taxi.trips. Давайте посмотрим, сколько строк было вставлено: Каждый файл в формате TSV содержит около 1 млн строк, а всего в трёх файлах — 3,000,317 строк. Давайте посмотрим на несколько строк: Обратите внимание: здесь есть столбцы с датами посадки и высадки, географическими координатами, сведениями о тарифах, районами Нью-Йорка и другими данными. Давайте выполним несколько запросов. Этот запрос показывает 10 районов, где посадки происходят чаще всего: Этот запрос показывает среднюю стоимость поездки в зависимости от количества пассажиров:
runnable
Вот корреляция между количеством пассажиров и расстоянием поездки:
runnable

Загрузка подготовленных партиций

Ниже описаны исходный набор данных и способ загрузки подготовленных партиций в среду самоуправляемого сервера ClickHouse.
Описание набора данных и инструкции по скачиванию см. на https://github.com/toddwschneider/nyc-taxi-data и http://tech.marksblogg.com/billion-nyc-taxi-rides-redshift.html. В результате скачивания вы получите около 227 ГБ несжатых данных в CSV-файлах. При соединении 1 Гбит/с скачивание занимает около часа (параллельное скачивание с s3.amazonaws.com позволяет задействовать как минимум половину канала 1 Гбит/с). Некоторые файлы могут скачаться не полностью. Проверьте размеры файлов и при необходимости скачайте подозрительные файлы повторно.
Если вы будете выполнять описанные ниже запросы, необходимо использовать полное имя таблицы datasets.trips_mergetree.

Результаты на одном сервере

Q1:
0,490 секунды. Q2:
1,224 секунды. Q3:
2,104 секунды. Q4:
3,593 секунды. Использовалась следующая конфигурация сервера: Два Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz, всего 16 физических ядер, 128 GiB оперативной памяти, 8×6 ТБ HDD на аппаратном RAID-5 Время выполнения — лучший результат из трёх запусков. Однако начиная со второго запуска запросы читают данные из кэша файловой системы. Дальнейшего кэширования не происходит: при каждом запуске данные заново считываются и обрабатываются. Создание таблицы на трёх серверах: На каждом сервере:
На сервере-источнике:
Следующий запрос перераспределяет данные:
Это занимает 2454 секунды. На трёх серверах: Q1: 0.212 секунды. Q2: 0.438 секунды. Q3: 0.733 секунды. Q4: 1.241 секунды. Здесь всё ожидаемо, поскольку запросы масштабируются линейно. У нас также есть результаты для кластера из 140 серверов: Q1: 0.028 сек. Q2: 0.043 сек. Q3: 0.051 сек. Q4: 0.072 сек. В этом случае выполнение запроса определяется прежде всего сетевой задержкой. Мы выполняли запросы с клиента, расположенного в другом датацентре, чем кластер, что добавило около 20 мс задержки.

Сводка

Последнее изменение 10 июня 2026 г.