Opções de mapeamento da coluna
Por padrão, COPY insere valores nas colunas da tabela de destino na mesma ordem dos campos ocorridos nos arquivos de dados. Se a ordem de coluna padrão não funcionar, você poderá especificar uma lista de colunas ou usar expressões JSONPath para mapear campos de dados de origem para as colunas de destino.
Lista de colunas
Você pode especificar uma lista separada por vírgulas de nomes de coluna para carregar campos de dados de origem em colunas de destino específicas. As colunas podem estar em qualquer ordem na instrução COPY, mas durante o carregamento de arquivos simples, como em um bucket do Amazon S3, a ordem deve corresponder à ordem dos dados de origem.
Durante o carregamento de uma tabela do Amazon DynamoDB, a ordem não importa. O comando COPY compara nomes de atributo nos itens recuperados da tabela do DynamoDB com nomes de coluna na tabela do Amazon Redshift. Para obter mais informações, consulte Carregar dados de uma tabela do Amazon DynamoDB
A seguir, o formato para uma lista de colunas.
COPY tablename (column1 [,column2, ...])
Se uma coluna na tabela de destino for omitida da lista de colunas, COPY carregará a expressão DEFAULT da coluna.
Se a coluna de destino não tiver um padrão, COPY tentará carregar NULL.
Se COPY tentar atribuir NULL a uma coluna definida como NOT NULL, o comando COPY falhará.
Se uma coluna IDENTITY estiver incluída na lista de colunas, EXPLICIT_IDS também deverá ser especificado; se uma coluna IDENTITY for omitida, EXPLICIT_IDS não poderá ser especificado. Se nenhuma lista de colunas for especificada, o comando se comportará como se uma lista de colunas completa, na ordem, tivesse sido especificada, com colunas IDENTITY omitidas se EXPLICIT_IDS também não tiver sido especificado.
Se uma coluna estiver definida com GENERATED BY DEFAULT AS IDENTITY, será possível copiá-la. Os valores são gerados ou atualizados com os valores fornecidos. A opção EXPLICIT_IDS não é necessária. COPY não atualiza a marca d'água alta de identidade. Para obter mais informações, consulte GENERATED BY DEFAULT AS IDENTITY.
Arquivo JSONPaths
Ao carregar de arquivos de dados em formato JSON ou Avro, COPY mapeará automaticamente os elemento de dados nos dados JSON ou Avro para as colunas na tabela de destino. Ele faz isso comparando nomes de campo no esquema do Avro com nomes de coluna na tabela de destino ou na lista de colunas.
Em alguns casos, os nomes de coluna e os nomes de campo não correspondem, ou você precisa mapear para níveis mais profundos na hierarquia de dados. Para mapear explicitamente elemento de dados JSON ou Avro para colunas, você pode usar um arquivo JSONPaths.
Para obter mais informações, consulte Arquivo JSONPaths.