Ana içeriğe geç Tamamlayıcı içeriğe geç

Apache Parquet dosyalarıyla çalışma

Apache Parquet, büyük veri kümelerini depolamak ve sorgulamak için oldukça verimli bir sütunlu depolama biçimidir. Qlik Sense içinde, Parquet dosyalarındaki verileri okuyabilir ve tabloları Parquet dosyaları olarak depolayabilirsiniz.

Parquet, tüm tabloyu okumak yerine tablodaki belirli sütunların verimli bir şekilde sorgulanmasına olanak tanır. Bu, Parquet'i büyük veri işleme ile kullanım için oldukça uygun hâle getirir. Parquet, verilerin verimli bir şekilde sıkıştırılmasını ve şifrelenmesini de destekler. Bu, depolama alanını daha da azaltabilir ve sorgu performansını iyileştirebilir.

Parquet dosyaları oluşturma

Komut dosyasındaki Store komutunu kullanarak Parquet dosyaları oluşturabilirsiniz. Kod içinde önceden okunan bir tablonun veya bunun bir parçasının seçtiğiniz bir konumdaki açıkça adlandırılmış bir dosyaya dışa aktarılmasını belirtin. Depoladığınız verileri Parquet dosyalarında iç içe geçirebilirsiniz.

Daha fazla bilgi için bk. Store.

Parquet dosyalarından veri okuma

Qlik Sense tarafından desteklenen diğer veri dosyalarında olduğu gibi, bir Parquet dosyasındaki verileri okuyabilirsiniz. Buna Veri yöneticisi, Veri yükleme düzenleyicisi veya yeni bir uygulamaya veri eklediğiniz zamanlar dahildir.

Daha fazla bilgi için bkz. Dosyalardan veri yükleme.

LOAD komutuyla veri komut dosyasında da bir Parquet dosyasından veri yükleyebilirsiniz. Örneğin:

LOAD * from [lib://DataFiles/xyz.parquet] (parquet);

Daha fazla bilgi için bk. Load.

İç içe geçirilmiş Parquet dosyalarından veri yükleme

Bir Parquet dosyası iç içe geçirilmiş veriler içeriyorsa her biri, her tabloya hangi alt kümenin yüklenmesi gerektiğini belirten birden fazla load deyiminde yüklenmelidir. Table is belirticisi, yüklenecek şemada grup düğümünün bir yolunu kanıtlamak için kullanılır.

Düğümlerin nasıl birleştirilmesi gerektiğini belirtmek için Sınırlayıcı: belirticisini kullanabilirsiniz. Sınırlayıcı içermeyen iç içe geçmiş verilerin bulunduğu dosyayı yükleyen bir LOAD deyimi, FieldNameDelimiter komut dosyası değişkeni tarafından belirtilen değeri kullanır. Sınırlayıcı verilmemiş ve FieldNameDelimiter ayarlanmamışsa varsayılan sınırlayıcı '.' olacaktır.

Sadece Table is yoluyla eşleşen düğümler yüklenir.

Veri düğümü, iç içe geçirme olmadan bir dosyaya yüklenir.

Grup düğümleri, adlarını alan adına ekleyerek gruptaki alanları gruplar. Örneğin field1 ve field2, group.field1 ve group.field2 olarak yüklenir.

Liste düğümleri, tablolara bağlantı vermek için kullanılan anahtar alanlar oluşturacaktır. Örneğin, %Key_group.list. Listenin içindeki herhangi bir grup veya veri düğümünün ayrı bir load deyiminde yüklenmesi gerekir. Üst öğe listesinin anahtar alanı da eklenecektir.

Aşağıdaki örnekler, Veri yöneticisi ve Veri yükleme düzenleyicisi kullanarak bir uygulamaya yüklenmiş İç içe geçirilmiş verileri Parquet dosyalarında saklama örneğinde oluşturulan aynı iç içe geçirilmiş Parquet dosyasını göstermektedir (Veri seç kısmından varsayılan komut dosyası ve özel komut dosyası ile).

Örnek: Veri yöneticisi

Veri yöneticisi içinde customer.parquet yükler ve tüm önerilen ilişkilendirmeleri uygularsanız aşağıdaki veri modelini elde edersiniz:

Veri yöneticisi ile company.parquet yüklemek için veri modeli

company:salesrep.salesrep, company, company:headquarter.headquarter ve company:headquarter.headquarter.city:region.region tablolarını gösteren veri modeli

Örnek: Veri yükleme düzenleyicisi (Veri seç)

Veri yükleme düzenleyicisi içinde Veri seç ile veri yüklerseniz aşağıdaki komut dosyasını elde edersiniz:

LOAD company, contact, "%Key_company:headquarter", "%Key_company:salesrep" FROM [lib://DataFiles/company.parquet] (parquet); LOAD country, city, "%Key_city:region", "%Key_company:headquarter" FROM [lib://DataFiles/company.parquet] (parquet, table is [company:headquarter.headquarter]); LOAD region, "%Key_city:region" FROM [lib://DataFiles/company.parquet] (parquet, table is [company:headquarter.headquarter.city:region.region]); LOAD salesrep, "%Key_company:salesrep" FROM [lib://DataFiles/company.parquet] (parquet, table is [company:salesrep.salesrep]);

Veri modeli Veri modeli görüntüleyicisi içinde bunun gibi görünür.

Veri yükleme düzenleyicisi içinde Veri seç ile company.parquet tablosunu yüklemek için veri modeli

salesrep, company, headquarter ve region tablolarını gösteren veri modeli.

Örnek: Veri yükleme düzenleyicisi (Özel komut dosyası)

Özel bir komut dosyası kullanıyorsanız alanların ve tabloların customer.parquet tablosundan nasıl yükleneceği üzerinde daha fazla kontrol sahibi olursunuz. Aşağıdaki komut dosyası, company.parquet tablosundaki tabloları ve alanları yükler:

LOAD * FROM [lib://DataFiles/company.parquet] (parquet); LOAD *, Lookup('company', '%Key_company:salesrepo', [%Key_company:salesrep], 'company') as company; LOAD * FROM [lib://DataFiles/company.parquet] (parquet, table is [company:salesrep.salesrep]); DROP FIELD [%Key_company:salesrep]; LOAD *, Lookup('company', '%Key_company:headquarter', [%Key_company:headquarter], 'company') as company; LOAD * FROM [lib://DataFiles/company.parquet] (parquet, table is [company:headquarter.headquarter]); DROP FIELD [%Key_company:headquarter]; LOAD *, Lookup('city', '%Key_city:region', [%Key_city:region], 'headquarter') as city; LOAD * FROM [lib://DataFiles/company.parquet] (parquet, table is [company:headquarter.headquarter.city:region.region]); DROP FIELD [%Key_city:region];

Bu, verilerin Parquet dosyasında saklanmasından önceki orijinal veri modeliyle aynı olan aşağıdaki veri modelini oluşturur.

Veri yükleme düzenleyicisi içinde özel bir komut dosyasıyla company.parquet yüklemek için veri modeli

Kaynak uygulamanın veri modelini tam olarak yansıtan headquarter, region, salesrep ve company tablolarıyla veri modeli.

Sınırlamalar

Parquet dosyaları aşağıdaki sınırlamalara sahiptir:

  • Bir int96 zaman damgası alanı içeren Parquet dosyaları doğru şekilde yüklenmeyebilir.

    Int96, saat dilimi bilgisi bulunmayan bir zaman damgası içeren, kullanımdan kaldırılmış bir veri türüdür. Alanı UTC olarak okuma girişimi yapılır ancak farklı satıcı uygulamaları olduğu için başarı garanti edilmez.

    Yüklenen verileri doğrulayın ve gerekirse bir fark değeri ile doğru saat dilimine ayarlayın.

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!