Skip to main content

Descripción general

Aprenda a ingestar y consultar datos en ClickHouse con el conjunto de datos de ejemplo de taxis de la ciudad de Nueva York.

Requisitos previos

Necesita acceso a un servicio de ClickHouse en funcionamiento para completar este tutorial. Para obtener instrucciones, consulte la guía de Inicio rápido.
1

Crear una tabla nueva

El conjunto de datos de taxis de la ciudad de Nueva York contiene información sobre millones de trayectos en taxi, con columnas como el importe de la propina, los peajes, el tipo de pago y más. Cree una tabla para almacenar estos datos.
  1. Conéctese a la consola SQL:
    • En ClickHouse Cloud, seleccione un servicio en el menú desplegable y, a continuación, SQL Console en el menú de navegación de la izquierda.
    • En ClickHouse autogestionado, conéctese a la consola SQL en https://_hostname_:8443/play. Consulte los detalles con su administrador de ClickHouse.
  2. Cree la siguiente tabla trips en la base de datos default:
2

Añade el conjunto de datos

Ahora que has creado una tabla, añade los datos de taxis de la ciudad de Nueva York desde archivos CSV en S3.
  1. El siguiente comando inserta ~2,000,000 filas en tu tabla trips desde dos archivos diferentes en S3: trips_1.tsv.gz y trips_2.tsv.gz:
  2. Espera a que termine el INSERT. La descarga de los 150 MB de datos puede tardar un momento.
  3. Cuando finalice la inserción, verifica que haya funcionado:
    Esta consulta debería devolver 1,999,657 filas.
3

Analizar los datos

Ejecute algunas consultas para analizar los datos. Explore los siguientes ejemplos o pruebe su propia consulta SQL.
  • Calcula el promedio de la propina:

  • Calcula el costo promedio según el número de pasajeros:

    El valor de passenger_count va de 0 a 9:

  • Calcula el número diario de recogidas por barrio:

  • Calcula la duración de cada viaje en minutos y, a continuación, agrupa los resultados por la duración del viaje:

  • Muestra el número de recogidas en cada barrio, desglosado por hora del día:

  1. Recupere los viajes a los aeropuertos LaGuardia o JFK:

4

Crear un diccionario

Un diccionario es una correspondencia de pares clave-valor almacenados en memoria. Para más detalles, consulte DictionariesCree un Diccionario asociado a una tabla en su servicio de ClickHouse. La tabla y el Diccionario se basan en un archivo CSV que contiene una fila por cada barrio de la ciudad de Nueva York.Los barrios están asociados a los nombres de los cinco distritos de la ciudad de Nueva York (Bronx, Brooklyn, Manhattan, Queens y Staten Island), así como al aeropuerto de Newark (EWR).A continuación se muestra un fragmento del archivo CSV que estás utilizando en formato de tabla. La columna LocationID del archivo se corresponde con las columnas pickup_nyct2010_gid y dropoff_nyct2010_gid de tu tabla trips:
  1. Ejecute el siguiente comando SQL, que crea un Diccionario llamado taxi_zone_dictionary y lo carga desde el archivo CSV en S3. La URL del archivo es https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv.
Configurar LIFETIME en 0 desactiva las actualizaciones automáticas para evitar tráfico innecesario hacia nuestro bucket de S3. En otros casos, puede que lo configure de otra manera. Para obtener más información, consulte Actualización de los datos del diccionario con LIFETIME.
  1. Verifique que haya funcionado. Lo siguiente debería devolver 265 filas, o una fila por cada barrio:
  2. Usa la función dictGet (o sus variantes) para obtener un valor de un diccionario. Debes indicar el nombre del diccionario, el valor que quieres obtener y la clave (que, en nuestro ejemplo, es la columna LocationID de taxi_zone_dictionary). Por ejemplo, la siguiente consulta devuelve el Borough cuyo LocationID es 132, que corresponde al aeropuerto JFK):
    JFK está en Queens. Observa que el tiempo para recuperar el valor es prácticamente 0:
  3. Utiliza la función dictHas para comprobar si una clave está presente en el diccionario. Por ejemplo, la siguiente consulta devuelve 1 (que equivale a “true” en ClickHouse):
  4. La siguiente consulta devuelve 0 porque 4567 no es un valor de LocationID del diccionario:
  5. Utilice la función dictGet para obtener el nombre de un distrito en una consulta. Por ejemplo:
    Esta consulta suma el número de viajes en taxi por distrito que terminan en los aeropuertos de LaGuardia o JFK. El resultado es como el siguiente, y fíjate en que hay bastantes viajes en los que se desconoce el barrio de recogida:
5

Realizar un join

Escribe algunas consultas que hagan JOIN entre taxi_zone_dictionary y tu tabla trips.
  1. Empieza con un JOIN simple que funciona de forma similar a la consulta anterior sobre aeropuertos:
    La respuesta es idéntica a la consulta dictGet:
Ten en cuenta que la salida de la consulta JOIN anterior es la misma que la de la consulta previa que usaba dictGetOrDefault (salvo que no se incluyen los valores Unknown). Internamente, ClickHouse en realidad llama a la función dictGet para el diccionario taxi_zone_dictionary, pero la sintaxis JOIN resulta más familiar para los desarrolladores de SQL.
  1. Esta consulta devuelve las filas correspondientes a los 1000 viajes con el importe de propina más alto y, a continuación, realiza un inner join de cada fila con el diccionario:
En general, evitamos usar SELECT * con frecuencia en ClickHouse. Debes recuperar solo las columnas que realmente necesitas.

Siguientes pasos

Obtenga más información sobre ClickHouse con la siguiente documentación:
Last modified on June 25, 2026