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 şablonucountry_table.csv
:country
kavramının değerleriage_group_table.csv
:age_group
kavramının değerlerislice_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
- Toplanmış sütunlarda bir
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:
- Tek tek yaş gruplarına göre toplam hastalık vakasını görebilmek için ülkeleri "toplayın"
country
sütunu için standartgeo:country
kavramını kullanın. Böylece bunlar için tam adları, konumları vs. otomatik olarak alabiliriz.- Birim bilgilerini XML dosyasına manuel olarak ekleyebilmemiz için
disease_cases
konseptininquantity: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.