CSVReader

Descrição

Analisa os dados formatados em CSV, retornando cada linha do arquivo CSV como um registro separado. Esse leitor permite inferir um esquema com base na primeira linha do CSV, se houver uma “linha de cabeçalho”, ou fornecer um esquema explícito para interpretar os valores. Consulte Uso do Controller Service para obter documentação adicional.

Tags

comma, csv, delimited, parse, reader, record, row, separated, values

Propriedades

Na lista abaixo, as propriedades obrigatórias são mostradas com um asterisco (*). Outras propriedades são consideradas opcionais. A tabela também indica os valores padrão e se uma propriedade é compatível com linguagem de expressão NiFi.

Nome de exibição

Nome da API

Valor padrão

Valores permitidos

Descrição

Formato CSV *

Formato CSV

personalizado

  • Formato personalizado

  • RFC 4180

  • Microsoft Excel

  • Delimitado por tabulação

  • Formato MySQL

  • Descarregamento do Informix

  • Escape de descarregamento do Informix desativado

Especifica em que “formato” estão os dados do CSV ou especifica se a formatação personalizada deve ser usada.

Marcador de comentários

Marcador de comentários

O caractere usado para indicar o início de um comentário. Qualquer linha que comece com esse comentário será ignorada.

Formato de data

Formato de data

Especifica o formato a ser usado na leitura/gravação de campos de data. Se não for especificado, os campos de data serão assumidos como o número de milissegundos desde a época (meia-noite, 1º de janeiro de 1970 GMT). Se especificado, o valor deve corresponder ao formato Java java.time.format.DateTimeFormatter (por exemplo, MM/dd/yyyyy para um mês de dois dígitos, seguido por um dia de dois dígitos, seguido por um ano de quatro dígitos, todos separados por caracteres “/”, como em 01/01/2017).

Caractere de escape *

Caractere de escape

O caractere que é usado para escapar de caracteres que, de outra forma, teriam um significado específico para o analisador CSV. Se a propriedade tiver sido especificada por meio da linguagem de expressão, mas a expressão for avaliada como um caractere de escape inválido em tempo de execução, ela será ignorada e o caractere de escape padrão será usado. Defini-la como uma cadeia de caracteres vazia significa que nenhum caractere de escape deve ser usado.

Cadeia de caracteres nula

Cadeia de caracteres nula

Especifica uma cadeia de caracteres que, se presente como um valor no CSV, deve ser considerada um campo nulo em vez de usar o valor literal.

Caractere de aspas *

Caractere de aspas

«

O caractere usado para colocar valores entre aspas para que os caracteres de escape não precisem ser usados. Se a propriedade tiver sido especificada por meio da linguagem de expressão, mas a expressão for avaliada como um caractere de citação inválido no tempo de execução, ela será ignorada e o caractere de citação padrão será usado.

Separador de registros *

Separador de registros

n

Especifica os caracteres a serem usados para separar registros de CSV

Tratar a primeira linha como cabeçalho *

Pular linha do cabeçalho

falso

  • true

  • falso

Especifica se a primeira linha do CSV deve ou não ser considerada um cabeçalho ou um registro. Se a estratégia de acesso ao esquema indicar que as colunas devem ser definidas no cabeçalho, essa propriedade será ignorada, pois o cabeçalho deve estar sempre presente e não será processado como um registro. Caso contrário, se for “verdadeiro”, a primeira linha dos dados do CSV não será processada como um registro e, se for “falso”, a primeira linha será interpretada como um registro.

Formato de hora

Formato de hora

Especifica o formato a ser usado na leitura/gravação de campos de tempo. Se não for especificado, os campos de tempo serão assumidos como o número de milissegundos desde a época (meia-noite, 1º de janeiro de 1970 GMT). Se especificado, o valor deve corresponder ao formato Java java.time.format.DateTimeFormatter (por exemplo, HH:mm:ss para uma hora de dois dígitos no formato de 24 horas, seguida por um minuto de dois dígitos, seguido por um segundo de dois dígitos, todos separados pelo caractere “:”, como em 18:04:15).

Formato de carimbo de data/hora

Formato de carimbo de data/hora

Especifica o formato a ser usado na leitura/gravação de campos de carimbo de data/hora. Se não for especificado, os campos de carimbo de data/hora serão considerados como o número de milissegundos desde a época (meia-noite, 1º de janeiro de 1970 GMT). Se especificado, o valor deve corresponder ao formato Java java.time.format.DateTimeFormatter (por exemplo, MM/dd/yyyyy HH:mm:ss para um mês de dois dígitos, seguido por um dia de dois dígitos, seguido por um ano de quatro dígitos, todos separados pelo caractere “/”; e depois seguido por uma hora de dois dígitos no formato de 24 horas, seguido por um minuto de dois dígitos, seguido por um segundo de dois dígitos, todos separados pelo caractere “:”, como em 01/01/2017 18:04:15).

Remover campos *

Remover campos

true

  • true

  • falso

Se o espaço em branco deve ou não ser removido do início e do fim dos campos

Remover aspas duplas *

Remover aspas duplas

true

  • true

  • falso

Se as aspas duplas iniciais e finais devem ou não ser removidas. Por exemplo: com a opção de aparo de cadeia de caracteres, “»test»” será interpretada como “test”; sem a opção de aparo de cadeia de caracteres, será interpretada como “»test»”. Se definido como “false”, significa conformidade total com a RFC-4180. O valor padrão é verdadeiro, com remoção.

Separador de valores *

Separador de valores

,

O caractere usado para separar valores/campos em um registro CSV. Se a propriedade tiver sido especificada por meio da linguagem de expressão, mas a expressão for avaliada como um separador de valor inválido em tempo de execução, ela será ignorada e o separador de valor padrão será usado.

Analisador CSV *

csv-reader-csv-parser

commons-csv

  • Apache Commons CSV

  • Jackson CSV

  • FastCSV

Especifica o analisador a ser usado para ler os registros CSV. NOTE: diferentes analisadores podem oferecer suporte a diferentes subconjuntos de funcionalidade e também podem apresentar diferentes níveis de desempenho.

Permitir nomes de cabeçalho duplicados

csvutils-allow-duplicate-header-names

true

  • true

  • falso

Se nomes de cabeçalho duplicados são permitidos. Os nomes de cabeçalho diferenciam maiúsculas de minúsculas; por exemplo, “name” e “Name” são tratados como campos separados. O tratamento de nomes de cabeçalho duplicados é específico do analisador CSV (quando aplicável):* Apache Commons CSV – os cabeçalhos duplicados resultarão no “deslocamento” dos dados da coluna para a direita, com a criação de novos campos para “unknown_field_index_X”, em que “X” é o número de índice de coluna CSV* Jackson CSV – os cabeçalhos duplicados serão desduplicados, sendo o valor do campo o da coluna CSV duplicada mais à direita* FastCSV – os cabeçalhos duplicados serão desduplicados, sendo o valor do campo o da coluna CSV duplicada mais à esquerda

Conjunto de caracteres *

csvutils-character-set

UTF-8

A codificação de caracteres que é usada para codificar/decodificar o arquivo CSV

Ignorar nomes de colunas de cabeçalho CSV

ignore-csv-header

falso

  • true

  • falso

Se a primeira linha de um CSV for um cabeçalho e o esquema configurado não corresponder aos campos nomeados na linha do cabeçalho, isso controlará como o leitor interpretará os campos. Se essa propriedade for verdadeira, os nomes de campo mapeados para cada coluna serão orientados apenas pelo esquema configurado e todos os campos que não estiverem no esquema serão ignorados. Se essa propriedade for falsa, os nomes de campo encontrados no cabeçalho do CSV serão usados como nomes de campos.

Estratégia de acesso ao esquema *

schema-access-strategy

infer-schema

  • Usar a propriedade “Schema Name”

  • Use a propriedade “Schema Text”

  • Leitor de referência de esquema

  • Usar campos de cadeia de caracteres do cabeçalho

  • Inferir o esquema

Especifica como obter o esquema que deve ser usado para interpretar os dados.

Ramificação do esquema

schema-branch

Especifica o nome da ramificação a ser usada ao procurar o esquema na propriedade do registro de esquema. Se a propriedade do registro de esquema escolhida não for compatível com a ramificação, esse valor será ignorado.

Nome do esquema

schema-name

${schema.name}

Especifica o nome do esquema a ser pesquisado na propriedade do registro de esquema

Leitor de referência de esquema *

schema-reference-reader

Implementação do serviço responsável pela leitura dos atributos ou do conteúdo do FlowFile para determinar o identificador da referência de esquema

Registro de esquema

schema-registry

Especifica o Controller Service a ser usado para o registro de esquema

Texto do esquema

schema-text

${avro.schema}

O texto de um esquema formatado por Avro

Versão do esquema

schema-version

Especifica a versão do esquema a ser pesquisada no registro de esquema. Se não for especificada, será recuperada a versão mais recente do esquema.

Gerenciamento do estado

Esse componente não armazena o estado.

Restrito

Esse componente não é restrito.

Considerações sobre os recursos do sistema

Esse componente não especifica considerações sobre os recursos do sistema.