Store
Store ifadesi bir QVD, Parquet, CSV veya TXT dosyası oluşturur.
Söz Dizimi:
Store [ fieldlist from] table into filename [ format-spec ];
Deyim, açıkça adlandırılmış bir QVD, Parquet veya metin dosyası oluşturur.
Deyim yalnızca bir veri tablosundan alanları dışa aktarabilir. Birkaç tablodan alanlar dışa aktarılacaksa, dışa aktarılması gereken veri tablosunu oluşturmak için kodda önceden açık bir join yapılmalıdır.
Metin değerleri, CSV dosyasına UTF-8 biçiminde dışa aktarılır. Bir sınırlayıcı belirtilebilir, bkz. LOAD. Bir CSV dosyasına yönelik store deyimi BIFF dışa aktarımı desteklemez.
Bağımsız Değişkenler:
Bağımsız Değişken | Açıklama |
---|---|
fieldlist::= ( * | field) { , field } ) |
Seçilecek alanların listesi. Alan listesi olarak * kullanılması tüm alanlara işaret eder. field::= fieldname [as aliasname ] fieldname, table içindeki bir alan adıyla aynı olan metindir. (Boşluklar veya diğer standart olmayan karakterler içermesi halinde alan adının düz çift tırnak işaretleri veya köşeli ayraçlar içine alınması gerektiğini unutmayın.) aliasname, sonuç olarak elde edilen QVD veya CSV dosyasında kullanılacak alan için bir alternatif addır. |
table | Veriler için kaynak olarak kullanılacak önceden yüklenmiş bir tabloyu temsil eden kod etiketi. |
filename |
Mevcut bir klasör veri bağlantısının geçerli yolu dahil hedef dosyanın adı. Örnek: 'lib://Table Files/target.qvd' Eski kod oluşturma modunda, aşağıdaki yol biçimleri de desteklenir:
|
format-spec ::=( ( txt | qvd | parquet), compression is codec) |
Biçim belirtimini bu dosya biçimlerinden biri olarak ayarlayabilirsiniz. Biçim belirtimi atlanırsa qvd olduğu varsayılır.
parquet kullanıyorsanız compression is ile hangi sıkıştırma codec'inin kullanılacağını da ayarlayabilirsiniz. compression is ile sıkıştırma codec'ini belirtmezseniz snappy kullanılır. Aşağıdaki sıkıştırma ayarları kullanılabilir:
Örnek: Store mytable into [lib://DataFiles/myfile.parquet] (parquet, compression is lz4); |
Örnekler:
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';
Parquet dosyalarında saklama
Parquet, her alanın belirli bir türde veri (örneğin in32, çift, zaman damgası veya metin) içerdiği, güçlü bir şekilde yazılmış bir dosya biçimidir. Qlik Sense, dahili verileri, farklı kaynaklardan gelen verilerin aynı alanlarda karıştırılabildiği, detaya girmeden yazılmış bir dual olarak kaydeder. Parquest'teki her bir alanda dual'in sadece bir parçası kaydedilebildiğinden, her bir alanın ne içerdiğini bilmek önemlidir. Varsayılan olarak Qlik Sense, alanın nasıl kaydedilmesini gerektiğini belirlemek için alan türünü kullanır. Verileri Parquet dosyalarında belirli bir biçimde kaydederken alanlarınızı yüklerken ne tür veriler olduğunu belirtmeniz gerekir. Verileri bir Parquet dosyasındaki uyumlu olmayan alanlara, örneğin ayıları metin alanına veya metni bir zaman damgası alanına kaydetmeye çalışırsanız boş değerler elde edersiniz.
Parquet'e kaydetmeyi planladığınız verileri yüklerken varsayılan davranış değiştirilebilir. Bunu veri türünüzü değiştirecek şekilde biçimlendirebilir veya Parquet'te belirli sütun türlerini zorla uygulayacak şekilde etiketleyebilirsiniz.
Parquet'te depolama için verileri biçimlendirme
Verilerinizi sınıflandırmak için Qlik Sense biçimlendirme işlevlerini kullanabilirsiniz. Örneğin Text(), Num(), Interval() veya Timestamp(), Parquet'te veri kaydederken veri biçimlerini zorla uygulayabilir. Qlik Sense, alan özelliklerine ve otomatik alan etiketlerine dayanarak neredeyse 20 veri türüne veri kaydedebilir. Daha fazla bilgi için bk. Yorumlama fonksiyonları
Örnek: Verileri Num() ve Text() ile biçimlendirme
Aşağıdaki örnekte, verilerin Parquet'te depolamak için hazırlanması gösterilmektedir. Num(), sayı alanına uygulanır. Text() hem metin hem karışık için uygulanır. Karışık olması durumunda Text(), Parquet'te sayı alanı gibi davranılmasını engeller ve metin değerlerinin boş değerlere değiştirilmesini sağlar.
NoConcatenate LOAD num, text, Text(mixed) as mixed RESIDENT Data; STORE Format INTO [lib://DataFiles/Tmp.parquet] (parquet);
Parquet'te depolamak için verileri etiketleme
Verileri Parquet'e kaydederken belirli sütun türlerini zorla uygulamak için verilerinizi $parquet etiketleriyle etiketleyin. Her veri türü, ilgili kontrol etiketini ekleyerek zorla uygulanabilir. Örneğin bir alanı Parquet'te INT32 olarak kaydedecekseniz komut dosyasında $parquet-int32 ile etiketleyin. Veri türüne bağlı olarak dual verinin dizesi veya sayısal temsili kaydedilecektir.
Aşağıdaki Parquest kontrol etiketleri, Parquest dosyalarına kaydetmek için alanları etiketlemek üzere kullanılabilir.
Kontrol etiketi | Dual | Fiziksel tür | Mantıksal tür | Dönüştürülmüş tür |
---|---|---|---|---|
$parquet-boolean | Sayı | BOOLEAN | NONE | NONE |
$parquet-int32 | Sayı | INT32 | NONE | NONE |
$parquet-int64 | Sayı | INT64 | NONE | NONE |
$parquet-float | Sayı | FLOAT | NONE | NONE |
$parquet-double | Sayı | DOUBLE | NONE | NONE |
$parquet-bytearray | Dize | BYTE_ARRAY | NONE | UTF8 |
$parquet-bytearrayfix | Sayı | FIXED_LEN_BYTE_ARRAY | NONE | DECIMAL |
$parquet-decimal | Sayı | INT64 | DECIMAL | DECIMAL |
$parquet-date | Sayı | INT32 | DATE | DATE |
$parquet-time | Sayı | INT64 | TIME | TIME_MICROS |
$parquet-timestamp | Sayı | INT64 | TIMESTAMP | TIMESTAMP_MICROS |
$parquet-string | Dize | BYTE_ARRAY | STRING | UTF8 |
$parquet-enum | Dize | BYTE_ARRAY | ENUM | ENUM |
$parquet-interval | Sayı | FIXED_LEN_BYTE_ARRAY | INTERVAL | INTERVAL |
$parquet-json | Dize | BYTE_ARRAY | JSON | JSON |
$parquet-bson | Dize | BYTE_ARRAY | BSON | BSON |
$parquet-uuid | Dize | FIXED_LEN_BYTE_ARRAY | UUID | NONE |
Örnek: Parquet'te depolamak için verileri etiketleme
Bu örnekte iki etiket, Parquet için verileri tanımlamak üzere kullanılır. num alanı, Parquet'te INT32 şeklinde ayarlanacak bir sayı alanı olarak tanımlamak üzere $parquet-int32 ile etiketlenir.