Zona de taxis Tlc
Durante las últimas seis semanas he estado estudiando la importación de los metadatos de 1.100 millones de viajes en taxi realizados en la ciudad de Nueva York entre 2009 y 2015 en varios almacenes de datos. Cada uno de estos almacenes de datos se ha orientado más hacia cargas de trabajo analíticas que transaccionales.
Aunque PostgreSQL soporta operaciones analíticas, no hay ninguna agregación automática de valores de campo, los cubos de datos tienen que ser construidos manualmente y los índices se utilizan para localizar y/o excluir bloques de datos en lugar de proporcionar resúmenes compactos que puedan ser utilizados para responder a las consultas agregadas. A fin de cuentas, el rendimiento de las consultas agregadas es proporcional a la cantidad de datos que se consultan.
La disposición de almacenamiento por defecto de PostgreSQL almacena los datos en forma no comprimida, por lo que la lectura de 100 MB/s de datos de un disco durante una exploración secuencial no producirá la misma cantidad de filas por segundo que la que se obtendría de un archivo CSV comprimido con gzip. Los 104 GB de datos CSV desnormalizados y comprimidos que he estado utilizando a lo largo de esta serie de entradas del blog se convierten en 281 GB cuando se importan a PostgreSQL.
Taxi negro de Londres
Los registros de viajes de taxis amarillos incluyen campos que capturan las fechas y horas de recogida y entrega, los lugares de recogida y entrega, las distancias de los viajes, las tarifas detalladas, los tipos de tarifas, los tipos de pago y los recuentos de pasajeros declarados por el conductor.
Los datos fueron recogidos y proporcionados a la Comisión de Taxis y Limusinas de la ciudad de Nueva York (TLC) por los proveedores de tecnología autorizados en el marco de los programas de mejora de pasajeros de taxis y libreas (TPEP/LPEP). Los datos del viaje no fueron creados por la TLC, y la TLC no se hace responsable de la exactitud de estos datos.
Esta bandera indica si el registro del viaje se mantuvo en la memoria del vehículo antes de enviarlo al proveedor, también conocido como “almacenar y reenviar”, porque el vehículo no tenía conexión con el servidor. S= viaje de almacenamiento y reenvío; N= no es un viaje de almacenamiento y reenvío.
Análisis de datos de los taxis de Nueva York
La cuenta de administrador del servidor está pensada para realizar operaciones de gestión, y no es adecuada para ejecutar consultas sobre los datos de los usuarios. La carga de datos es una operación que requiere mucha memoria. Los máximos de memoria se definen en función de las unidades del almacén de datos y de la clase de recurso configurada.
Ya está listo para comenzar el proceso de carga de datos en su nuevo almacén de datos. Esta parte del tutorial muestra cómo utilizar la sentencia COPY para cargar el conjunto de datos de taxis de Nueva York desde un blob de Azure Storage. Para futuras referencias, para aprender a llevar sus datos a Azure Blob Storage o a cargarlos directamente desde su fuente, consulte la descripción general de la carga.
Ejecute los siguientes scripts SQL y especifique la información sobre los datos que desea cargar. Esta información incluye dónde se encuentran los datos, el formato del contenido de los datos y la definición de la tabla para los datos.
Este tutorial carga los datos directamente en la tabla final. Por lo general, se cargan en una tabla de preparación para las cargas de trabajo de producción. Mientras los datos están en la tabla de preparación, puede realizar las transformaciones necesarias.
Kaggle taxi nyc
postgres:13Postgres necesita mantener archivos en un sistema de archivos para almacenar y recuperar los datos. Como estamos usando contenedores, y éstos no guardan el estado, necesitamos permitir que Postgres acceda a un directorio en el sistema anfitrión, es decir, necesitamos mapear un directorio en la máquina anfitriona a un directorio en el contenedor para guardar los datos. El proceso de emparejar estos dos directorios se llama montaje.Vamos a añadir un directorio llamado ny_taxi_postgres_data junto al Dockerfile que creamos la semana pasada. Ahora, podemos añadir la bandera -v (mount) a nuestro comando docker run asignando este directorio recién creado al directorio de datos de Postgres en el contenedor (separado por un :). Tenga en cuenta que los directorios pasados a la bandera de montaje son rutas absolutas.
postgres:13Por último, dado que habrá comunicaciones entre el host y el contenedor, necesitamos asignar un puerto en la máquina del host a un puerto en el contenedor. Hacemos esto con la bandera -p pasando el puerto 5432. Al igual que en el montaje del directorio, al especificar el puerto, el valor antes de los dos puntos corresponde al host y el valor después al contenedor.
