Ir para conteúdo principal Pular para conteúdo complementar

Store

O comando Store cria um arquivo QVD, Parquet, CSV ou TXT.

Sintaxe:  

Store [ fieldlist from] table into filename [ format-spec ];

O comando criará um arquivo explicitamente nomeado QVD, Parquet ou um arquivo de texto.

O comando só pode exportar campos de uma tabela lógica. Se os campos de várias tabelas forem exportados, uma join explícita deve ser feita previamente no script para criar a tabela de dados que deve ser exportada.

Os valores de texto são exportados para o arquivo CSV no formato UTF-8. É possível especificar um separador. Para isso, consulte LOAD. O comando store para um arquivo CSV não suporta exportação de BIFF.

Nota informativaEm alguns casos com dados que não estão bem formados, os campos serão colocados entre aspas duplas para garantir que os dados sejam interpretados corretamente. Isso pode acontecer, por exemplo, quando o campo contém caracteres como aspas, vírgula, espaço ou quebras de linha.

Argumentos:  

Armazenar argumentos de comando
Argumento Descrição
fieldlist::= ( * | field) { , field } )

Uma lista dos campos a serem selecionados. O uso de * como lista de campos indica todos os campos. 

field::= fieldname [as aliasname ]

fieldname é um texto idêntico a um nome de campo em table. (Observe que o nome do campo deverá estar entre aspas duplas ou colchetes se contiver espaços ou outros caracteres que não sejam padrão).

aliasname é um nome alternativo do campo a ser usado no arquivo QVD ou CSV resultante.

table Um rótulo de script representando uma tabela já carregada, que será usada como fonte dos dados.
filename

O nome do arquivo de destino, incluindo um caminho válido para uma conexão de dados da pasta existente.

Exemplo: 'lib://Table Files/target.qvd'

No modo legado de uso de scripts, os seguintes formatos de caminho também são suportados:

  • absoluto

    Exemplo: c:\data\sales.qvd

  • relativo ao diretório operacional do Qlik Sense Qlik Cloud.

    Exemplo: data\sales.qvd

    Se o caminho for omitido, o Qlik Sense armazenará o arquivo no diretório especificado pelo comando Directory. Se não houver um comando Directory, o Qlik Sense armazenará o arquivo no diretório de trabalho, C:\Users\{user}\Documents\Qlik\Sense\Apps.

format-spec ::=( ( txt | qvd | parquet), compactação é codec)

Você pode definir a especificação do formato para qualquer um desses formatos de arquivo. Se a especificação do formato for omitida, qvd será assumido.

  • txt para arquivos CSV e TXT.

  • qvd para arquivos QVD.

  • parquet para arquivos Parquet.

Se você usar parquet, também poderá definir qual codec de compactação usar com compactação é. Se você não especificar o codec de compactação com compactação é, snappy será usado. As seguintes configurações de compactação estão disponíveis:

  • uncompressed

  • snappy

  • gzip

  • lz4

  • brotli

  • zstd

  • lz4_hadoop

Exemplo:

Store mytable into [lib://DataFiles/myfile.parquet] (parquet, compression is lz4);

Exemplos:

Store mytable into xyz.qvd (qvd);

Store * from mytable into 'lib://FolderConnection/myfile.qvd';

Store Name, RegNo from mytable into xyz.qvd;

Store Name as a, RegNo as b from mytable into 'lib://FolderConnection/myfile.qvd';

Store mytable into myfile.txt (txt);

Store mytable into myfile.parquet (parquet);

Store * from mytable into 'lib://FolderConnection/myfile.qvd';

Nota informativaA extensão do arquivo de conexões DataFiles faz distinção entre maiúsculas e minúsculas. Por exemplo: .qvd.

Armazenamento em arquivos Parquet

O Parquet é um formato de arquivo fortemente tipado, em que cada campo contém um único tipo específico de dados (como in32, double, timestamp ou texto). O Qlik Sense armazena dados internos como duplos livremente tipados, em que dados de fontes diferentes podem ser misturados nos mesmos campos. Como somente uma parte do duplo pode ser armazenada em cada campo no Parquet, é importante saber o que cada campo contém. Por padrão, o Qlik Sense usa o tipo de campo para determinar como o campo deve ser armazenado. Ao armazenar dados em arquivos Parquet em um formato específico, você deve especificar que tipo de dados são seus campos ao carregá-los. Se você tentar armazenar dados em campos incompatíveis em um arquivo Parquet, como números em um campo de texto ou texto em um campo de carimbo de data/hora, receberá valores nulos.

Ao carregar dados que você pretende armazenar no Parquet, é possível alterar o comportamento padrão. Você pode formatá-los para alterar seu tipo de dados ou marcá-los para forçar tipos de colunas específicos no Parquet.

Formatação de dados para armazenamento no Parquet

É possível usar funções de formatação do Qlik Sense para classificar dados. Por exemplo, Text(), Num(), Interval() ou Timestamp() pode impor formatos de dados ao armazenar dados no Parquet. O Qlik Sense pode armazenar dados em quase 20 tipos de dados, dependendo dos atributos de campo e das tags de campo automáticas. Para obter mais informações, consulte Funções de interpretação

Exemplo: Formatação de dados com Num() e Text()

O exemplo a seguir demonstra a preparação de dados para armazenamento no Parquet. Num() é aplicada ao campo numérico. Text() é aplicado a texto e conteúdo misto. No caso de conteúdo misto, Text() impede que ele seja tratado como um campo numérico no Parquet e que os valores de texto sejam alterados para valores nulos.

Data: LOAD * INLINE [ num, text, mixed 123.321, abc, 123 456.654, def, xyz 789.987, ghi, 321 ]; Format:
NoConcatenate LOAD num, text, Text(mixed) as mixed RESIDENT Data; STORE Format INTO [lib://DataFiles/Tmp.parquet] (parquet);

Marcação de dados para armazenamento no Parquet

Você marca seus dados com tags $parquet para forçar tipos de coluna específicos ao armazenar dados no Parquet. Cada tipo de dados pode ser aplicado adicionando a tag de controle correspondente. Por exemplo, para armazenar um campo como INT32 no Parquet, marque-o com $parquet-int32 no script de carregamento. Dependendo do tipo de dados, a string ou a representação numérica dos dados duais serão armazenadas.

As seguintes tags de controle do Parquet podem ser usadas para marcar campos para armazenamento em arquivos do Parquet.

Tags de controle do Parquet
Tag de controle DualTipo físicoTipo lógicoTipo convertido
$parquet-booleanNúmeroBOOLEANNONENONE
$parquet-int32NúmeroINT32NONENONE
$parquet-int64NúmeroINT64NONENONE
$parquet-floatNúmeroFLOATNONENONE
$parquet-doubleNúmeroDOUBLENONENONE
$parquet-bytearrayCadeiaBYTE_ARRAYNONEUTF8
$parquet-bytearrayfixNúmeroFIXED_LEN_BYTE_ARRAYNONEDECIMAL
$parquet-decimalNúmeroINT64DECIMALDECIMAL
$parquet-dateNúmeroINT32DATEDATE
$parquet-timeNúmeroINT64TIMETIME_MICROS
$parquet-timestampNúmeroINT64TIMESTAMPTIMESTAMP_MICROS
$parquet-stringCadeiaBYTE_ARRAYSTRINGUTF8
$parquet-enumCadeiaBYTE_ARRAYENUMENUM
$parquet-intervalNúmeroFIXED_LEN_BYTE_ARRAYINTERVALIntervalo
$parquet-jsonCadeiaBYTE_ARRAYJSONJSON
$parquet-bsonCadeiaBYTE_ARRAYBSONBSON
$parquet-uuidCadeiaFIXED_LEN_BYTE_ARRAYUUIDNONE

Exemplo: Marcação de dados para armazenamento no Parquet

Neste exemplo, duas tags são usadas para definir os dados para o Parquet. O campo num é marcado com $parquet-int32 para defini-lo como um campo numérico que será definido como INT32 no Parquet.

Data: LOAD * INLINE [ num, text, 123.321, abc 456.654, def 789.987, ghi ]; TAG num WITH '$parquet-int32'; STORE Data INTO [lib://DataFiles/Tmp.parquet] (parquet);

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!