DSPL Oluşturucu

DSPL Oluşturma, bir CSV veri tablosunu basit bir DSPL veri kümesine dönüştürmeye yardımcı olan bir komut satırı yardımcı programıdır. Araç, giriş dosyasını ayrıştırır, gerekli tüm veri tablolarını oluşturur ve bir DSPL XML dosyası oluşturur. Sonuçta, yüklemeden ve görselleştirmeden önce küçük bir ayrıntılandırma gerektiren neredeyse eksiksiz bir veri kümesi "şablonu" elde edildi.

DSPL Oluşturma'nın arkasındaki temel varsayım, giriş CSV dosyasındaki her sütunun tek bir DSPL kavramına karşılık geldiği ve her satırın bir boyut kombinasyonu için tek bir gözlem olduğudur. Araç, sütunlar üzerinde çalışarak, her sütun / kavram için uygun meta verileri (ör. kimliği, türü, boyutu veya metriği vb.) belirleyip gerekli tüm konsept tanımı ve dilim tablolarını oluşturarak çalışır.

DSPL Oluşturucu çalıştırılıyor

Söz dizimi

Not: Bu talimatlarda, DSPL Araçları sayfasında verilen yükleme talimatlarını uyguladığınız varsayılır.

DSPL Gen'i çalıştırmak için sisteminizdeki terminale / isteme gidin:

python dsplgen.py -o [output path] [path to CSV file] 

parantez içindeki ifadeler şu şekilde değiştirilir:

  • [output path]: Çıkış dosyalarınızın yerleştirilmesini istediğiniz dizin yolu. Bu dizin dosya sisteminizde zaten mevcut olmalıdır.
  • [path to CSV file]: Giriş CSV dosyanızın yolu. Bu dosyanın biçimlendirilmesiyle ilgili daha ayrıntılı bilgi için aşağıdaki bölüme bakın.

-o [output path] bileşeni isteğe bağlıdır. Atlanırsa çıkış dosyaları mevcut dizine yerleştirilir.

Ardından araç, CSV dosyanızda tekrarlayarak kavram tanımlarını çıkarır ve dilim tabloları oluşturur. Herhangi bir hata bulunmazsa çıkış dizinine bir XML dosyası ve bir veya daha fazla CSV dosyası yazılır.

Son olarak, XML dosyasını istediğiniz metin düzenleyicide açın ve istediğiniz değişiklikleri yapın. En azından, araç tarafından ** INSERT ... ** adlarını içeren adları, açıklamaları ve diğer değerleri doldurmanız gerekir.

Basit Örnek

Bir hastalık için toplam vaka sayısını ay, ülke ve yaş grubuna göre ayrılmış şekilde veren bir CSV'miz olduğunu varsayalım. Basit olması için her boyutun 2 değeri olduğunu varsayalım:

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,US,young,23131
01/2000,MX,young,12311
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,US,young,22990
02/2000,MX,young,12591

Aracı yukarıdaki girişte çalıştırdığınızda 4 dosya oluşturulur:

  • dataset.xml: DSPL XML şablonu
  • country_table.csv: country kavramının değerleri
  • age_group_table.csv: age_group kavramının değerleri
  • slice_0_table.csv: Veri kümesi dilimi tablosu (sıralama dışında, giriş tablosuyla aynıdır)

Bu örnekte, araç tüm sütun türlerini ve biçimlerini doğru şekilde tahmin edebilir. Artık tek yapmanız gereken XML dosyasına gidip veri kümesi meta verilerindeki çeşitli adları, açıklamaları ve URL'leri düzenlemek.

Giriş CSV'nizle İlgili Açıklama Ekleme

Temel Seçenekler

Yukarıdaki örnekte olduğu gibi birçok durumda DSPL Oluşturma her sütun için temel meta verileri (ör. tür, biçim ve bir boyut veya metrik olup olmadığını) tahmin edebilir. Ancak bazı durumlarda araç bunları tahmin edemeyebilir, yanlış veya doğru şekilde tahmin edebilir ancak yine de istenen davranışı gerçekleştiremez.

Araç, bu tür durumları işlemek için CSV başlık satırına DSPL oluşturma seçenekleri / "ipuçları" eklemeyi destekler. Söz dizimi şu şekildedir:

column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...

Özellikle, seçenek listesinin sütun adının sağındaki köşeli parantez içine yerleştirildiğini ve sonraki seçenek ayarlarının noktalı virgül ile ayrıldığını unutmayın. Her seçenek bir seçenek adı, eşittir işareti ve bir seçenek değerinden oluşur.

DSPL Gen şu anda aşağıdaki temel seçenekleri desteklemektedir:

Option Açıklama Varsayılan
type Bu sütun için DSPL veri türü date, float, integer veya string olmalıdır. Verilerden tahmin ediliyor
format Bu tarih sütununun biçimi; DSPL'de olduğu gibi Jda DateTime standardı kullanılarak kodlanmalıdır. Verilerden tahmin ediliyor
slice_role Bu sütunun dilimdeki rolü; dimension veya metric olmalıdır. Sütun date veya string türündeyse dimension, aksi takdirde metric
concept Bu sütunun temsil ettiği standart kavram, ör. geo:country; belirtilirse kavram içe aktarılır ve XML dosyasında herhangi bir tanım üretilmez. Yok
extends Bu sütunun genişlettiği standart kavram, ör. entity:entity. Yok
parent

Bu sütunun üst kavramı. Bu üst veri, veri kümesinde tanımlanan (yani içe aktarılmayan) bir boyut kavramı olmalıdır. Bu bilgi, veri kümesinde bir kavram hiyerarşisi tanımlamak için kullanılır.

Her alt örneğin yalnızca bir üst öğesi olabileceğini unutmayın. Birden fazla üst değer tespit edilirse araç bir hata oluşturur.

Yok

Değer Toplayıcıları

Yukarıda açıklanan temel, "ipucu" seçeneklerine ek olarak DSPL Gen, dilim toplayıcılarını da destekler: Tek bir tablo girişi olduğunda araç, boyutların sınırlı alt kümelerini içeren otomatik olarak ek tablolar oluşturabilir. Örneğin, giriş tablonuz üç zaman olmayan boyuta (ör. dimension1, dimension2 ve dimensions3), araç da bazı ek dilimler oluşturabilir: yalnızca dimension1, yalnızca dimension2, yalnızca dimension1 ve dimension2 vb.

Bu ek dilimlerin eklenmesi, veri görselleştirmelerinizi oluşturmak için gereken boyut filtrelerinin sayısını azalttığından veri kümenizin keşfedilmesini kolaylaştırabilir. Öte yandan bu işlem, orijinal dosyada bulunmayan "yeni" verileri de kullanıma sunabilir. Bu sayede, doğru şekilde kullanılmadığı takdirde de hatalar ortaya çıkabilir. Veri kümenizi yayınlamadan önce toplayıcı sayıları dikkatlice kontrol edin.

Birleştirme CSV dosyası, giriş CSV başlığına bazı ek seçenekler eklenerek tetiklenir:

Option Açıklama Varsayılan
aggregation Bu sütunun birden çok değeri birleştirilirken kullanılacak toplama yöntemi AVG, COUNT, MAX, MIN veya SUM olmalıdır; yalnızca metrik için anlamlıdır. SUM
rollup Değer true ise bu sütunun konsepti "toplandı" (yani topludur). Yalnızca boyut kavramları için anlamlıdır. Yanlış
total_val Bu sütun toplandığında toplanacak satırları belirten değer. Bu değer yalnızca boyut kavramları için kullanılır. None

DSPL Oluşturma, ardından toplayıcıları aşağıdaki algoritmayı kullanarak hesaplar:

  • rollup etiketlerinin değerlerini kullanarak olası tüm sütun kombinasyonlarını hesaplayın
  • Her kombinasyon için:
    • Toplanmış sütunlarda bir total_val parametresi ayarlanmışsa, satırları bu değere göre filtreleyin, aksi takdirde tüm satırları seçin
    • Toplanmış sütunları bırak
    • Satırları, kalan boyut sütunlarının değerlerine göre gruplandırın
    • Her metriği, aggregation parametresinde belirtilen yöntemi kullanarak toplayın
    • Sonuç için bir dilim ve ilişkili tablo oluşturun

Her gruplandırmada yalnızca tek bir değer varsa ve toplama işlevi SUM (varsayılan değer) olarak ayarlanmışsa kaynak ve oluşturulan tablolardaki metrik değerleri aynı olur. Yani yeni değerler oluşturulmaz. Bu nedenle, total_val parametresini kullanmak ve diğer boyutların her bir kombinasyonu için yalnızca bir "toplam" satırı olduğundan emin olmak, önceden hesaplanmış toplu verileri doğrudan kaynakta depolamanıza olanak tanır.

Uyarı: Oluşturulan dilim sayısı, 2 toplanmış sütuna eşittir. Bu seçeneğin çok sayıda sütuna uygulanması, çok uzun çalışma sürelerine ve/veya büyük veri kümelerine neden olabilir.

Gelişmiş Örnek

Önceki örnektekiyle aynı giriş verilerine sahip olduğumuzu ancak ülkeler genelinde toplu verileri içerdiğini varsayalım:

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,total,old,152012
01/2000,US,young,23131
01/2000,MX,young,12311
01/2000,total,young,241011
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,total,old,211310
02/2000,US,young,22990
02/2000,MX,young,12591
02/2000,total,young,240131

Örneğin, metodolojideki farklılıklar veya listede belirtilmeyen diğer ülkelerin varlığı nedeniyle her yaş grubunun toplamı ülke değerlerinin toplamıyla eşleşmeyebilir.

Şimdi de aşağıdaki ek özellikleri içeren bir DSPL veri kümesi oluşturmak istiyoruz:

  1. Tek tek yaş gruplarına göre toplam hastalık vakasını görebilmek için ülkeleri "toplayın"
  2. country sütunu için standart geo:country kavramını kullanın. Böylece bunlar için tam adları, konumları vs. otomatik olarak alabiliriz.
  3. Birim bilgilerini XML dosyasına manuel olarak ekleyebilmemiz için disease_cases konseptinin quantity:amount kapsamını genişletin

Bunu yapmak için, giriş CSV'sinin başlık satırını aşağıdaki gibi değiştiririz:

date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]

Aracı tekrar çalıştırırken, artık ülkeye göre farkları ortadan kaldıran ek bir dilim tablosu aldık:

date,age_group,disease_cases
01/2000,old,152012
02/2000,old,211310
01/2000,young,241011
02/2000,young,240131

Kaynak tabloya toplam değerleri ve total_val etiketini eklememiş olsaydık her yaş grubu için hesaplanan toplamı alırdık.

Ayrıca XML dosyasında disease_cases tanımı artık istendiği şekilde quantity:amount uzantısını içeriyor. Bunun yerine içe aktarılan bir kavram kullandığımızdan country tanımı XML dosyasından çıkarılır.

Çeşitli adları, açıklamaları ve birim bilgilerini doldurduktan sonra veri kümesi paketini sıkıştırabilir ve görselleştirmek için Public Data Explorer'a yükleyebiliriz.