Puntos clave: Cargar archivos CSV de Amazon S3 a Snowflake implica pasos detallados para la creación de tablas y la copia de datos, junto con fragmentos de código para el manejo de datos. Este tutorial ofrece orientación práctica para gestionar los datos CSV de forma eficiente.
- Instrucciones paso a paso para cargar archivos CSV en Snowflake.
- Ejemplos de código para crear tablas y copiar datos de S3.
En estos tutoriales, mostramos cómo cargar un archivo CSV desde Amazon S3 a una tabla Snowflake.
También hemos explicado cómo cargar archivos JSON en Snowflake.
Datos de muestra
te necesito algunos datos para trabajar con este ejemplo. Descarga 1.000 registros meteorológicos desde aquí. (Compramos 20 años de datos meteorológicos para Pafos, Chipre, a OpenWeather. Esto están solo un pequeño subconjunto de 1.000 registros convertidos a formato CSV.)
Sube estos datos a Amazon S3 así:
aws s3 cp paphosWeather.csv s3://gluebmcwalkerrowe/paphosWeather.csv
Crea tabla en Snowflake
Desafortunadamente, Snowflake no lee el registro de cabecera ni Crea la tabla por ti. (Presumiblemente están porque preferirían eso te Define los tipos de datos de columna, la precisión numérica y el tamaño.)
create table weather(
dt integer,
temp decimal(6,2),
temp_min decimal(6,2),
temp_max decimal(6,2),
pressure int,
humidity int,
speed decimal(6,2),
deg int,
main varchar(50),
description varchar(50))
Copiar archivo de datos al área de etapa Copo de Nieve.
Luego Crea un área de escenario Copo de Nieve así.
No importa cuáles sean tus credenciales de Snowflake. Pon tus credenciales de Amazon AWS. De hecho, no están dónde consultar tus credenciales de Snowflake porque son iguales a tus credenciales de Amazon IAM, incluso si te son ejecutándolo en una instancia de Snowflake, es decir, te no instala Snowflake localmente en tus servidores EC2.
create or replace stage paphosweather
url='s3://gluebmcwalkerrowe/paphosWeather.csv'
credentials=(aws_key_id='xxxxxxx' aws_secret_key='xxxxxxx')
Ahora copia los datos en la tabla te creada arriba.
copy into weather
from 's3://gluebmcwalkerrowe/paphosWeather.csv'
credentials=(aws_key_id='xxxxxxx' aws_secret_key='xxxxxxxx')
file_format = (type = csv field_delimiter = ',' skip_header = 1);
Convierte el tiempo de época a formato legible
La columna dt están tiempo de época, que están el número de segundos desde el 1 de enero de 1970. te puede convertirla a un formato legible (por ejemplo, 2000-01-01 01:00:00.000) así.
select to_timestamp(dt) from weather
Formatos de fecha y hora de copo de nieve
Snowflake parece tener algunos límites a la hora y la importación. Los datos que tenía incluían la hora de la época () así como la hora en este formato:
2020-09-12 23:00:00 +0000 UTC
que convertí a este formato, donde +00.00 significa el desplazamiento de huso horario en hh:mm:
2020-09-12 23:00:00+00:00
Este formato también está disponible, que elimina por completo la zona horaria:
2020-09-12 23:00:00
Como no podía Obtén cargar ninguno de esos valores, usé el tiempo de época. (Si te puede Haz funcione, escríbenos a blogs@bmc.com.)
2020-09-12 23:00:00+00:00 debería coincidir con esta sentencia de formato, que te configurar usando la declaración de marca de tiempo alterar sesión antes de cargar el archivo csv:
alter session set TIMESTAMP_INPUT_FORMAT = 'yyyy-mm-dd HH24:MI:SS+TZH:TZM'
Pero Snowflake mostró un error diciendo que no coincidían. Eso no tiene sentido, ya que esta afirmación, que lo prueba, funcionó sin problema:
select to_timestamp('2000-01-01 00:00:00+00:00', 'yyyy-mm-dd HH24:MI:SS+TZH:TZM');
Buscando más a fondo, vi en la documentación que el formato de fecha y hora de Snowflake no soporta milisegundos ni desplazamiento de zona horaria. Pero aún así recibí un error al eliminar esa parte de la fecha. El formato de marca de tiempo tampoco funcionó. (De nuevo, escríbenos si te Obtén esto funcione en blogs@bmc.com.)
Recursos adicionales
Para más tutoriales como este, explora estos recursos:
- Blog de Aprendizaje Automático y Big Data de BMC
- Funciones agregadas SQL de Snowflake y uniones de tablas
- Funciones de la ventana copo de nieve: Partición por y orden por
- Función de retraso de copo de nieve y medias móviles
- Guía de AWS, con 15 artículos y tutoriales
- Computación cuántica de Amazon Braket: Cómo Obtén
Guía de copos de nieve
- Snowflake 101: Introducción a la Nube de Datos Snowflake
- Cómo importar datos de Amazon S3 a Snowflake
- Cómo consultar datos JSON en Snowflake
- Cargando archivos CSV de S3 a Snowflake
- Snowflake: Uso de Analítica y Funciones Estadísticas
- Funciones de la ventana copo de nieve: Partición por y orden por
- Función de retraso de copo de nieve y medias móviles
- Funciones agregadas SQL de Snowflake y uniones de tablas
- Funciones definidas por el usuario (UDFs) en Snowflake
- Creación y uso de arroyos de copos de nieve
- Uso de procedimientos almacenados en Snowflake
- Copo de nieve vs Redshift: ¿Cuál es la diferencia y cómo elegir?
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.