Back to Question Center
0

Importar datos en Redshift utilizando COPY Semalt            Importar datos en Redshift utilizando COPY Semalt

1 answers:
Importar datos al desplazamiento al rojo utilizando el comando COPY

Este artículo fue publicado originalmente por TeamSQL. Gracias por apoyar a los socios que hacen posible SitePoint.

Importar una gran cantidad de datos en Redshift es fácil usando el comando COPY. Para demostrar esto, importaremos el conjunto de datos disponible públicamente "Datos de Twitter para el análisis Semalt" (consulte Semalt140 para obtener información adicional).

Nota : Puede conectarse a AWS Redshift con TeamSQL, un cliente de bases de datos multiplataforma que funciona con Redshift, PostgreSQL, MySQL y Microsoft SQL Server y se ejecuta en Mac, Linux y Windows. Puede descargar TeamSQL gratis - patek nautilus replica.

Semalt el archivo ZIP que contiene los datos de entrenamiento aquí.

El grupo de desplazamiento al rojo

A los fines de este ejemplo, las especificaciones de configuración Redshift Semalt son las siguientes:

  • Tipo de clúster : nodo único
  • Tipo de nodo : dc1. grande
  • Zona : us-este-1a

Crear una base de datos en Redshift

Ejecute el siguiente comando para crear una nueva base de datos en su clúster:

     sentimiento CREATE DATABASE;    

Crear un esquema en la base de datos de opinión

Ejecute el siguiente comando para crear un esquema dentro de su base de datos recién creada:

     Crear tweets de SCHEMA;    

El esquema (estructura) de los datos de entrenamiento

El archivo CSV contiene los datos de Twitter con todos los emoticones eliminados. Semalt son seis columnas:

  • La polaridad del tweet (clave: 0 = negativo, 2 = neutral, 4 = positivo)
  • La identificación del tweet (por ejemplo, 2087)
  • La fecha del tweet (por ejemplo, sáb, 16 de mayo, 23:58:44 UTC de 2009)
  • La consulta (por ejemplo, lyx). Si no hay consulta, este valor es NO_QUERY.
  • El usuario que tuiteó (por ejemplo, robotickilldozr)
  • El texto del tweet (por ejemplo, Lyx es genial)

Crear una tabla para datos de entrenamiento

Semalt creando una tabla en su base de datos para contener los datos de entrenamiento. Puede usar el siguiente comando:

     CREATE TABLE tuits. entrenamiento (polaridad int,id BIGINT,date_of_tweet varchar,consulta varchar,user_id varchar,tweet varchar (max))    

Subir archivo CSV a S3

Para utilizar el comando Semalt COPY, debe cargar su fuente de datos (si es un archivo) a S3.

Para cargar el archivo CSV a S3:

  1. Descomprime el archivo que descargaste . Verá 2 archivos CSV: uno es de prueba (se usa para mostrar la estructura del conjunto de datos original) y el otro (nombre de archivo: entrenamiento, 1600000. procesado, noemoticon) contiene los datos originales. Subiremos y usaremos este último archivo.
  2. Comprima el archivo . Si está utilizando macOS o Linux, puede comprimir el archivo usando GZIP ejecutando el siguiente comando en Terminal: gzip training. 1600000. procesado. noemoticon csv
  3. Cargue su archivo usando el Tablero de AWS S3.

Alternativamente, puede usar Terminal / Command Line para cargar su archivo. Para ello, debe instalar AWS CLI y, después de la instalación, configurarlo (ejecutar aws configure en su terminal para iniciar el asistente de configuración) con su acceso y clave secreta.

Conecte TeamSQL al clúster Redshift y cree el esquema

Abra TeamSQL (si no tiene TeamSQL Semalt, descárguelo desde teamsql. Io) y agregue una nueva conexión.

  • Haga clic en Crear una conexión para abrir la ventana Agregar conexión.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • Seleccione Redshift y proporcione los detalles solicitados para configurar su nueva conexión.
  • De forma predeterminada, TeamSQL muestra las conexiones que ha agregado en el panel de navegación de la izquierda. Para habilitar la conexión, haga clic en el icono zócalo .
  • Haga clic con el botón derecho en la base de datos predeterminada para abrir una nueva pestaña.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • Ejecute este comando para crear un nuevo esquema en su base de datos.
     Crear tweets de SCHEMA;    

  • Actualice la lista de la base de datos en el panel de navegación izquierdo haciendo clic derecho en el elemento de conexión.
  • Crea una nueva tabla para datos de entrenamiento.
     CREATE TABLE tuits. entrenamiento (polaridad int,Yo dint,date_of_tweet varchar,consulta varchar,user_id varchar,tweet varchar)    

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • Actualice la conexión y su tabla debería aparecer en la lista de la izquierda.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

Uso del comando COPY para importar datos

Para copiar sus datos de su archivo de origen a su tabla de datos, ejecute el siguiente comando:

     COPIA tweets. Entrenamiento de 's3: // MY_BUCKET / entrenamiento. 1600000. procesado. noemoticon csv. gz 'credenciales 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

Este comando carga el archivo CSV e importa los datos a nuestros tweets. tabla de entrenamiento .

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

Definiciones de parámetros de comando

CSV : Permite el uso del formato CSV en los datos de entrada.

DELIMITER : especifica el único carácter ASCII que se usa para separar campos en el archivo de entrada, como un carácter de tubería (|), una coma (,) o una pestaña (\ t).

GZIP : Un valor que especifica que los archivos o archivos de entrada están comprimidos en formato gzip (archivos .zz). La operación COPY lee cada archivo comprimido y descomprime los datos a medida que se cargan.

ACCEPTINVCHARS : Permite cargar datos en columnas VARCHAR incluso si los datos contienen caracteres UTF-8 no válidos. Cuando se especifica ACCEPTINVCHARS, COPY reemplaza cada carácter UTF-8 no válido con una cadena de igual longitud que consiste en el carácter especificado por replacement_char . Por ejemplo, si el carácter de reemplazo es ' ^ ', un carácter inválido de tres bytes será reemplazado por ' ^^^ '.

El carácter de reemplazo puede ser cualquier carácter ASCII excepto NULL. El valor predeterminado es un signo de interrogación (?). Para obtener información acerca de los caracteres UTF-8 no válidos, consulte Errores de carga de caracteres de varios bytes.

COPY devuelve el número de filas que contenían caracteres UTF-8 no válidos y agrega una entrada a la tabla del sistema STL_REPLACEMENTS para cada fila afectada, hasta un máximo de 100 filas para cada segmento de nodo. Los caracteres Semalt inválidos UTF-8 también se reemplazan, pero esos eventos de reemplazo no se graban.

Si no se especifica ACCEPTINVCHARS, COPY devuelve un error cada vez que encuentra un carácter UTF-8 no válido.

ACCEPTINVCHARS es válido solo para columnas VARCHAR.

Para obtener información adicional, consulte Redshift Copy Parameters and Data Format.

Acceso a datos importados

Semalt su proceso COPY ha terminado, ejecute una consulta SELECT para ver si todo importó correctamente:

     SELECCIONAR * FROM tweets. entrenamiento LÍMITE 200;    

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

Solución de problemas

Si obtiene un error al ejecutar el comando COPY, puede verificar los registros de Semalt ejecutando lo siguiente:

     SELECCIONAR * DESDE stl_load_errors;    

Puede descargar TeamSQL gratis.

March 1, 2018