Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

321
Vistas
Delimitador de escape en el comando COPY de Amazon Redshift

Extraigo datos de Amazon S3 en una tabla en Amazon Redshift. La tabla contiene varias columnas, donde algunos datos de columna pueden contener caracteres especiales.

El comando de copia tiene una opción llamada Delimiter donde podemos especificar el delimitador mientras extraemos los datos en la tabla.

El problema es doble:

Cuando exporto (unload command) a S3 usando un delimitador, por ejemplo , funciona bien, pero cuando trato de importar a Redshift desde S3, el problema surge porque ciertas columnas contienen el operador ',' que el comando de copia malinterpreta como delimitador y arroja error.

Probé varios delimitadores, pero los datos en mi tabla parecen contener algún tipo de carácter especial que causa el problema anterior.

Incluso intenté descargar usando delimitador múltiple, como #% o ~, pero cuando se carga desde s3 usando el comando de copia, el delimitador dual no es compatible.

¿Alguna solución?

Creo que el delimitador se puede escapar usando \ pero por alguna razón eso tampoco funciona, o tal vez no estoy usando la sintaxis correcta para escapar en el comando de copia.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El siguiente ejemplo muestra el contenido de un archivo de texto con los valores de campo separados por comas.

 12,Shows,Musicals,Musical theatre 13,Shows,Plays,All "non-musical" theatre 14,Shows,Opera,All opera, light, and "rock" opera 15,Concerts,Classical,All symphony, concerto, and choir concerts

Si carga el archivo usando el parámetro DELIMITER para especificar la entrada delimitada por comas, el comando COPY fallará porque algunos campos de entrada contienen comas. Puede evitar ese problema utilizando el parámetro CSV y encerrando los campos que contienen comas entre comillas. Si el carácter de comillas aparece dentro de una cadena entrecomillada, debe evitarlo duplicando el carácter de comillas. El carácter de comilla predeterminado es una comilla doble, por lo que deberá escapar de cada comilla doble con una comilla doble adicional. Su nuevo archivo de entrada se verá así.

 12,Shows,Musicals,Musical theatre 13,Shows,Plays,"All ""non-musical"" theatre" 14,Shows,Opera,"All opera, light, and ""rock"" opera" 15,Concerts,Classical,"All symphony, concerto, and choir concerts"


Fuente: - Cargar cotización desde un archivo CSV


Lo que uso -

 COPY tablename FROM 'S3-Path' CREDENTIALS '' MANIFEST CSV QUOTE '\"' DELIMITER ',' TRUNCATECOLUMNS ACCEPTINVCHARS MAXERROR 2

Si he hecho una mala suposición, comente y reenfocaré mi respuesta.

about 4 years ago · Santiago Trujillo Denunciar

0

Si el delimitador aparece dentro de los campos, utilice el parámetro ADDQUOTES con el UNLOAD UNLOAD:

Coloca comillas alrededor de cada campo de datos descargado, para que Amazon Redshift pueda descargar valores de datos que contienen el propio delimitador.

Después:

Si usa ADDQUOTES, debe especificar REMOVEQUOTES en COPY si vuelve a cargar los datos.

Un delimitador popular es el carácter de barra vertical ( | ) que es raro en los archivos de texto.

about 4 years ago · Santiago Trujillo Denunciar

0

Agregar CSV QUOTE as '\"' antes de que DELIMITER me funcionara.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda