S3 (conector)

O S3 (Simple Storage Service) é um serviço da AWS feito para armazenamento de arquivos de forma escalável. A integração de dados do S3 para o Data Warehouse criada pela Kondado possibilita que você tenha acesso a arquivos CSV na sua nuvem analítica.

Adicionando o conector

Considere que o seu bucket chama-se nome-do-bucket-generico

Passo 1: Criar uma Nova Política IAM

  1. Vá para o Console IAM: https://console.aws.amazon.com/iam
  2. No menu à esquerda, clique em Políticas.
  3. Clique no botão Criar política.
  4. Na aba JSON, cole o seguinte documento de política
    1. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::nome-do-bucket-generico", "arn:aws:s3:::nome-do-bucket-generico/*" ] } ] }
  5. Clique em Avançar: Tags, depois em Avançar: Revisar.
  6. No campo Nome da política, insira S3ReadListBucketGenericoPolicy.
  7. Clique em Criar política.

Passo 2: Criar um Novo Usuário IAM

  1. Vá novamente para o Console IAM: https://console.aws.amazon.com/iam
  2. No menu à esquerda, clique em Usuários.
  3. Clique em Adicionar usuário.
  4. Insira o nome do usuário como S3ReadUserBucketGenerico.
  5. Selecione Chave de acesso – Acesso programático.
  6. Clique em Avançar: Permissões.

Passo 3: Associar a Política ao Usuário

  1. Na página Permissões, clique em Anexar políticas existentes diretamente.
  2. Procure pela política que você criou: S3ReadListBucketGenericoPolicy.
  3. Marque a caixa ao lado da política e clique em Avançar: Tags, depois em Avançar: Revisar.
  4. Clique em Criar usuário.

Passo 4: Baixar as Chaves de Acesso

  1. Após criar o usuário, as ID da chave de acesso e Chave de acesso secreta serão exibidas.
  2. Baixe ou copie essas credenciais, pois elas não serão exibidas novamente.

Agora o usuário S3ReadUserBucketGenerico tem acesso programático para ler e listar arquivos do bucket S3 genérico.

Passo 5: Adicionar na Kondado

  1. Na plataforma da Kondado, clique em CRIAR + > Conector > selecione o conector do S3
  2. Dê um nome para o seu conector, preencha os valores obtidos no passo 4 e o nome do bucket (no nosso exemplo nome-do-bucket-generico) onde os seus arquivos estão.

Agora basta salvar o conector e testar a conexão

Integrações

CSV

A integração para leitura de arquivos CSV irá criar uma tabela em seu destino onde todos os campos serão do tipo text e tratados para substituir caracteres especiais

Todos os arquivos devem ter cabeçalho

Os seguintes parâmetros estão disponíveis:

  1. Data inicial de leitura: Refere-se à data de modificação dos arquivos. Indica a partir de qual data os dados começarão a serem lidos. Caso escolha por deixar sua integração Integral, este parâmetro será ignorado
  2. Delimitador de colunas: Indique qual caracter é utilizado para separar as colunas do arquivo
  3. Prefixo dos arquivos: Indique qual o prefixo dos arquivos que serão inclusos, não incie com o nome do bucket ou com “/” ou “s3://”. Não utilize wildcards. Exemplo pasta_x/pasta_y/inicio_do_nome_dos_arquivos_
  4. Compressão: Escolha GZIP caso esta seja a compressão aplicada a seus arquivos ou CSV caso não haja compressão. Ao escolher GZIP, seu arquivo deve ter extensão “.gz” ou “.gzip” e possuir apenas um arquivo dentro do ficheiro. Caso escolha CSV seu arquivo deve ter extensão “.csv”
  5. Header: Liste a primeira linha (cabeçalho) de seus arquivos. Não é necessário manter a ordem das colunas. Caso algum arquivo tenha campos que não estejam neste campo, estes campos serão ignorados. Caso o arquivo não possua todos os campos do header, estes campos apenas não serão lidos, sem ocasionar em falhas. Não utilize espaços entre os campos, apenas vírgulas. Por exemplo: col_x,col_y,col_z

Após esta etapa, você poderá escolher o tipo de replicação de sua integração.

Caso escolha Integral, todos os arquivos que correspondem ao prefixo sempre serão lidos e caso algum arquivo seja apagado entre uma execução e outra ele também será apagado de sua tabela, o que não acontecerá caso sua replicação seja Incremental, por isso este tipo de replicação é indicada para casos em que há deleção (e não apenas alteração) de arquivos. Esta replicação pode aumentar seu número de registros

Ao escolher a replicação Incremental, sempre que um arquivo for alterado ele será alterado em seu destino, você poderá localizar o arquivo que gerou a inserção de uma dada linha e quando esta linha foi inserida/alterada pelas colunas _kdd_file_name e _kdd_insert_time, respectivamente