Importar

O DynoTable importa arquivos CSV, JSON e NDJSON para uma tabela já existente — a outra metade da Exportação. O arquivo inteiro é verificado antes de uma única linha ser gravada, então um arquivo com problemas falha com números de linha em vez de deixar seus dados importados pela metade.

Abra-a com o botão Importar na barra de ferramentas da tabela. Importar grava na tabela, então exige uma licença de teste ou ativa.

A caixa de diálogo de importação DynamoDB do DynoTable: o arquivo escolhido, suas colunas detectadas e os tipos inferidos, e um preview das primeiras linhas.
A caixa de diálogo de importação DynamoDB do DynoTable: o arquivo escolhido, suas colunas detectadas e os tipos inferidos, e um preview das primeiras linhas.

Importar carrega dados em uma tabela que já existe — nunca cria uma. Crie a tabela (e sua chave primária) primeiro, depois importe para ela.

Dois níveis de fidelidade

ExataJSON / NDJSON escritos no formato de fio (DynamoDB-JSON). Nada é adivinhado: cada valor já carrega seu próprio tipo, então uma exportação feita nesse formato é reimportada sem alterações. É o formato a usar quando os dados importam de verdade.

PráticaCSV e JSON simples (não empacotado). Esses não carregam informação de tipo, então o DynoTable infere um tipo por coluna e mostra o que escolheu antes de você confirmar. Prático, e com perdas de formas documentadas — veja Onde arquivos práticos perdem informação.

Colunas e tipos

Os cabeçalhos do arquivo viram nomes de atributo. O preview lista cada coluna com o tipo que o DynoTable inferiu. Clique com o botão direito no cabeçalho de uma coluna para renomear o atributo se o cabeçalho não corresponder ao nome que você quer, ou para mudar seu Tipo de dado quando o tipo inferido não é o que você quer — um código de produto formado só por dígitos, por exemplo, que precisa continuar como texto em vez de virar número.

A lista de tipos só oferece o que os valores daquela coluna realmente podem virar, então uma coluna de texto simples não vai oferecer Mapa ou Lista. Se uma coluna tem só um tipo possível, nenhuma lista aparece. Não há tela de mapeamento além dessa.

Seu arquivo precisa fornecer a chave primária completa da tabela. Uma linha sem um atributo de chave, ou com o tipo errado para um deles, é recusada com o nome do problema.

Nada é gravado até o arquivo inteiro passar

Importar lê o arquivo duas vezes. A primeira passagem valida cada linha e não grava nada; só se o arquivo passar, a segunda passagem grava.

  • Os problemas são relatados com números de linha (ou posições de item, para um array JSON), até 20 por vez.
  • Duas linhas com a mesma chave em um arquivo são recusadas, e as duas posições são mostradas — o DynamoDB manteria silenciosamente só a última.
  • Corrija o arquivo e clique em Importar de novo; a caixa de diálogo continua com o arquivo que você escolheu.

Importar substitui os itens correspondentes

Uma linha importada substitui qualquer item existente com a mesma chave primária, atributo por atributo — ela não é mesclada com ele. Atributos que o item antigo tinha e o arquivo não tem desaparecem.

Importar também não passa pela preparação, então não há etapa de revisão e não há como reverter. Diferente de uma edição preparada, uma importação não pode ser desfeita pelo histórico do app. Em dados que importam para você, importe primeiro para uma cópia da tabela e confira o resultado.

Limites

LimiteValor
Tamanho do arquivo CSV / NDJSON250 MB
Um único array .json50 MB — use NDJSON acima disso
Linhas por importação2.000.000
Um item400 KB (o teto do próprio DynamoDB)

Um arquivo .json guarda um array grande que precisa ser interpretado por inteiro, por isso seu limite é menor. NDJSON — um item por linha — é transmitido em vez disso, então aceita os 250 MB completos.

Onde arquivos práticos perdem informação

Isso vale só para CSV e JSON simples. O formato DynamoDB-JSON empacotado não tem nenhum desses problemas.

  • Os tipos são inferidos a partir de uma amostra de cerca das primeiras 200 linhas. Uma coluna que parece numérica ali mas vira não numérica mais adiante no arquivo é recusada durante a validação — a correção é ajustar o arquivo.
  • Sets e binários não podem ser expressos em CSV, então não podem ser importados de um.
  • Células vazias são ignoradas, não gravadas como strings vazias. Um item simplesmente não terá esse atributo.
  • Mapas e listas sobrevivem à viagem. A exportação os grava em uma célula CSV como texto JSON, e a importação reconhece esse texto e reconstrói a estrutura. Se uma coluna é de fato texto que por acaso parece JSON, o preview mostra o que ela virou e você pode definir o Tipo de dado dessa coluna de volta para String.
  • Números muito grandes em JSON simples perdem precisão antes mesmo de o DynoTable vê-los — essa é uma limitação do próprio JSON. Use DynamoDB-JSON para IDs e valores que precisam permanecer exatos.
  • As marcas de segurança de planilha são tratadas na volta. A exportação prefixa com um apóstrofo as células que uma planilha trataria como fórmulas. Na importação, '-5 vira o número -5 e '+7 volta como o texto +7 — mas uma fórmula genuína como '=SUM(A1) mantém seu apóstrofo, permanentemente. Removê-lo rearmaria o que a marca existe para desarmar.

Progresso, cancelamento e falhas

Uma importação em andamento aparece no painel Atividade, na parte inferior da barra lateral, com progresso ao vivo, e continua enquanto você trabalha em outras abas. Você pode Parar por lá; as linhas já gravadas continuam gravadas.

Se o DynamoDB limitar a tabela (throttling) o suficiente para que algumas linhas não possam ser gravadas mesmo após novas tentativas, a importação termina e informa quantas linhas não puderam ser gravadas. Executar o mesmo arquivo de novo é seguro — as linhas que chegaram são simplesmente gravadas de novo com os mesmos valores.

As entradas de importação ficam no painel até você dispensá-las: uma importação não produz um arquivo para apontar, então essa linha é o único registro de que a execução terminou.

Atualizado