Real-Time Market AnalyticsClickHouse Workshops

03 Cargar los datos — dos métodos

Los mismos 26,5 millones de ticks cargados dos veces: primero con ClickPipes, la canalización gestionada que usarías en producción, y después con una única llamada a s3(); aprende cuándo elegir cada método.

Los datos están en un bucket S3 público, así que no necesitas claves ni credenciales: basta con indicar la URL. La transferencia se ejecuta en el servidor, de S3 a ClickHouse; no envía 26,5 millones de filas a través de tu portátil ni depende de la red wifi del recinto.

Cargarás los mismos 26,5 millones de ticks de dos formas distintas para conocer ambas. El método 1 utiliza ClickPipes, la canalización gestionada y guiada desde la interfaz que usarías en producción. El método 2 consiste en una sola línea de SQL, la forma más rápida de introducir datos durante una demostración. Hazlos en orden; un TRUNCATE entre ambos mantiene limpia la cuenta.

Método 1 — ClickPipes, la opción gestionada para producción

ClickPipes es un servicio de ingesta totalmente gestionado: conéctalo a almacenamiento de objetos o a un stream y seguirá cargando sin que tengas que construir un conector. Este es el flujo completo.

  1. En el menú izquierdo, haz clic en Data sources y después en Create ClickPipe.

Página Data sources de ClickHouse Cloud con el botón Create ClickPipe resaltado

En Data sources también se encuentran «Upload file» y «Add sample data».

  1. En Select the data source, elige Amazon S3 (al principio de la lista Popular).

Paso Select the data source con Amazon S3 como primera opción popular

  1. En Setup your ClickPipe connection, escribe cualquier name, selecciona Authentication method → Public (el bucket es público) y pega lo siguiente en S3 file path:
https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquet

Deja Continuous ingestion desactivado —es un archivo único— y pulsa Incoming data →.

Configuración de la conexión ClickPipe: nombre, Authentication method establecido en Public y ruta del archivo S3 rellenada

  1. En Incoming data, ClickHouse muestra una vista previa del archivo coincidente: verás fx/ticks.parquet con 158,43 MB. Confirma File type → Parquet, deja la compresión en Detect automatically y pulsa Parse information →.

Paso Incoming data con la vista previa de fx/ticks.parquet de 158,43 MB y File type en Parquet

  1. En Parse information, ClickHouse muestra una fila de ejemplo y detecta las columnas. En Upload data to, elige Existing table, selecciona la Database que contiene tu tabla (normalmente default) y establece Table → forex. Comprueba que los campos de origen (datetime, bid, ask, base, quote) coincidan con sus columnas: deberían asignarse automáticamente. Deja sin asignar los campos adicionales _path / _file / _size. Después, pulsa Details and settings →.

Paso Parse information: Upload data to en Existing table, base de datos y tabla forex seleccionadas, y campos de origen asignados

La captura muestra la base de datos techthai del presentador; utiliza la que contenga tu tabla.

  1. En Details and settings, conserva las Permissions predeterminadas (ClickPipes crea un usuario de escritura dedicado) y pulsa Create ClickPipe.

Paso Details and settings con Permissions y el botón Create ClickPipe

Sin trabajos de Spark ni cargadores personalizados.

  1. Volverás a Data sources, donde aparecerá tu ClickPipe. En pocos segundos, el Status cambiará a Completed y Records mostrará 26.488.218: todos los ticks cargados desde almacenamiento de objetos.

Lista Data sources con el ClickPipe en estado Completed y 26.488.218 registros

Comprueba qué se ha cargado. Ejecuta esto en SQL Console:

-- expect 26,488,218 ticks across 12 pairs
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;

Deberías ver

ticks = 26.488.218 y pairs = 12. Son unos 26,5 millones de filas cargadas desde almacenamiento de objetos en cuestión de segundos.

Método 2 — una línea con s3(), lo más rápido para una demostración

Ahora carga exactamente los mismos datos con una única sentencia SQL, directamente desde el archivo público. Primero, vacía la tabla para que la cuenta no se duplique y después inserta:

-- clear the rows ClickPipes just loaded so we don't double up
TRUNCATE TABLE forex;

-- load all ~26.5M ticks from the public S3 file in one line (server-side)
INSERT INTO forex
SELECT * FROM s3('https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquet', NOSIGN, 'Parquet');

-- and check again (expect 26,488,218)
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;

NOSIGN significa «sin credenciales»: eso es todo lo necesario para leer un bucket público. SELECT * funciona porque el orden de las columnas de la tabla coincide con el del archivo.

ClickPipes frente a la función s3() — cuándo usar cada uno

Las mismas 26.488.218 filas se han cargado de dos formas. La diferencia está en lo que ocurre después de la primera carga: si buscas una canalización continua y gestionada o una lectura rápida y puntual.

ClickPipesFunción de tabla s3()
Qué esUn servicio de ingesta totalmente gestionado que configuras en la consolaUna función SQL que llamas dentro de una consulta
Ideal paraCargas continuas de producción que quieres configurar y dejar en marchaCargas puntuales rápidas, exploración ad hoc y scripts
Nuevos archivos / continuidadPuede seguir observando un bucket o stream y cargar datos nuevos continuamenteEjecución única: solo lee lo que haya cada vez que la ejecutas
ConfiguraciónInterfaz guiada, sin necesidad de SQLUna única sentencia INSERT … SELECT
Supervisión y reintentosIntegrados: estado, gestión de errores y reintentos en la consolaNinguno: si falla, debes volver a ejecutarla
OrígenesMuchos: S3, GCS, Azure, Kafka y otros streams, CDC de Postgres/MySQL y másSolo almacenamiento de objetos (funciones relacionadas: gcs(), azureBlobStorage(), url())

Regla práctica: elige ClickPipes cuando sigan llegando datos y quieras gestionarlos; elige s3() cuando solo necesites traer un archivo ahora mismo. Hoy has usado la línea única para empezar a consultar cuanto antes; ahora vamos a explorar los datos.

En esta página

¿Quieres seguir tu progreso?

Opcional. Enviaremos un enlace por correo para confirmar tu dirección; el progreso se registrará cuando lo abras.

Usa tu correo de trabajo, no uno personal.

Para seguir el progreso también debes aceptar los Términos del servicio actuales en la Configuración de privacidad.

ES