Cargando archivos CSV de S3 a Snowflake

Cargando archivos CSV de S3 a Snowflake

  • Orquestación
6 min de lectura Actualizado Oct 13, 2020

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:

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Orquestación

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.