DSPL Oluşturucu

DSPL Gen, bir CSV veri tablosunu basit bir DSPL veri kümesine dönüştürür. Araç, girişi ayrıştırır dosyası oluşturur, gerekli tüm veri tablolarını oluşturur ve bir DSPL XML dosyası ortaya koyar. Sonuç olarak, neredeyse tamamlanmış bir veri kümesi "şablon" ve yüklenmeden önce küçük düzenlemeler gerektiren yardımcı oluyorum.

DSPL Oluşturma Aracı'nın arkasındaki temel varsayım, kampanyadaki her sütunun giriş CSV dosyası, tek bir DSPL kavramına karşılık gelir ve her satır bir tek bir gözlem yerine kullanılabilecektir. Bu araç, sütunlar arasında yineleme yaparak her biri için uygun meta verileri sütun / kavram (ör. kimliği, türü, boyut veya metrik olması fark etmeksizin) vb.) hazırlayarak gerekli tüm kavram tanımını ve tablolarında anlatacağım.

DSPL Oluşturma Aracı çalıştırılıyor

Söz dizimi

Not: Bu talimatlarda şunu zaten izlediniz: kurulum talimatları (DSPL Araçları sayfası).

DSPL Gen'i çalıştırmak için sisteminizde terminale / isteme gidin ve şunu yazın:

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

burada, köşeli parantez içine alınan terimler aşağıdaki gibi değiştirilmiştir:

  • [output path]: İstediğiniz dizine giden yol çıkış dosyalarınıza yerleştirilecektir; bu dizin şurada önceden bulunmalıdır: dosya sisteminizde de olabilir.
  • [path to CSV file]: Giriş CSV dosyanızın yolu. Bkz. bölümüne göz atın. bu dosyayı biçimlendirin.

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

Ardından araç çalışır, CSV dosyanızı yineler ve dilim tabloları oluşturmayı da öğrendiniz. Herhangi bir hata bulunmazsa XML dosyası ve bir veya daha fazla CSV dosyası çıkış dizinine yazılır.

Son olarak, XML dosyasını tercih ettiğiniz metin düzenleyicide açın ve yapabilirsiniz. En azından adları girmeniz gerekir. açıklamaları ve araç tarafından ** INSERT ... ** gösterimi.

Basit Örnek

Bir CSV dosyası için toplam vaka sayısını gösteren bir ay, ülke ve yaş grubuna göre ayrılmış bir hastalıktır. Kolaylık sağlaması açısından her boyutta 2 değer 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

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

  • dataset.xml: DSPL XML şablonu
  • country_table.csv: country değerleri kavram
  • age_group_table.csv: Şunun değerleri: age_group kavram
  • slice_0_table.csv: Veri kümesi dilimiyle aynı olan tablo giriş tablosu (sıralama hariç)

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

Girişinize Ek Açıklama Ekleme CSV'si

Temel Seçenekler

Yukarıdaki örnekte olduğu gibi çoğu durumda, DSPL kuşağı her sütun için meta veriler, ör. türü, biçimi ve uygun olup olmadığına veya metrik kullanabilirsiniz. Ancak diğer durumlarda, araç bunları tahmin edebilir, yanlış tahmin edebilir ya da doğru tahmin edebilir yine de istenen davranışı izlememesidir.

Araç, bu durumları ele almak için DSPL oluşturma seçenekler / "ipuçları" girin. Bunların söz dizimi şöyledir: şöyle olur:

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

Özellikle, seçenek listesinin sütun adının sağında bulunan parantezler ve sonraki seçenek ayarları noktalı virgül ile ayrılır. Her seçenek bir seçenek adı, eşittir işareti ve bir seçenek değeri.

DSPL Oluşturma Aracı şu anda aşağıdaki temel seçenekleri desteklemektedir:

Option Açıklama Varsayılan
type Bu sütunun DSPL veri türü; biri date olmalıdır, float, integer veya string. Verilerden tahmin edilmiştir
format Bu tarih sütununun biçimi; (DSPL'de olduğu gibi) bu biçim Joda DateTime standardı. Verilerden tahmin edilmiştir
slice_role Bu sütunun tüm dilimlerdeki rolünün ne olduğu; şunlardan biri olmalıdır: dimension veya metric. Sütun date türündeyse dimension veya string, aksi takdirde metric
concept Bu sütunun temsil ettiği standart kavram, ör. geo:country; varsa kavram içe aktarılır ve XML dosyasında üretilir. Yok
extends Bu sütunun genişletildiği standart kavram, ör. entity:entity Yok
parent

Bu sütunun üst konsepti. Bu üst öğe bir boyut olmalıdır veri kümesinin içinde tanımlanan (içe aktarılmayan) kavram; (verilmişse bu bilgiler proje yönetiminde bir kavram hiyerarşisini veri kümesiyle eşleştirilir.

Her alt örneğin yalnızca bir üst örneği olabileceğini unutmayın. Birden fazla üst değerler algılanırsa araç bir hata üretir.

Yok

Değer Kapsamlı Görünümleri

Temel bilgilere ek olarak, yukarıda açıklanan seçenekler DSPL Oluşturma Aracı, tek bir tablo verildiğinde dilim toplayıcıları da destekler. Bu araç, sınırlı sayıda veriyi otomatik olarak alt kümelerini de oluşturabilirsiniz. Örneğin, giriş tablonuz zaman olmayan üç boyut (ör. dimension1, dimension2 ve dimensions3) durumlarda, araç birkaç dilim daha oluşturun: sadece dimension1, yalnızca dimension2, yalnızca dimension1 ve dimension2 vb.

Bu ek dilimlerin eklenmesi veri kümenizin keşfedilmesini kolaylaştırabilir çünkü yeni filtrenin üretilmesi için gereken boyut birlikte çalışır. Diğer yandan, bu süreç "yeni" verileri orijinal dosyada bulunamadı. Bu nedenle, doğru kullanılması; özel verilerinizi yayınlamadan önce, toplanmış sayıları veri kümesiyle eşleştirilir.

Toplama işlemi, sayfaya bazı ek seçeneklerin eklenmesiyle tetiklenir. giriş CSV başlığı:

Option Açıklama Varsayılan
aggregation Birden fazla değer birleştirilirken kullanılacak toplama yöntemi seçmeniz gerekir; biri AVG, COUNT ve MAX, MIN veya SUM; yalnızca metrikler için anlamlıdır. SUM
rollup Değer true ise bu sütun "toplanmış" (ör. toplu olarak toplanan); yalnızca boyut kavramları için anlamlıdır. Yanlış
total_val Bu sütunda, bu durumda saklanması gereken satırları gösteren değer. sütun toplanmıştır; yalnızca boyut kavramları için anlamlıdır. None

DSPL Oluşturma Aracı, daha sonra aşağıdaki algoritmayı kullanarak toplayıcıları hesaplar:

  • rollup etiketlerinin değerlerini kullanarak mümkün olan tüm sütun kombinasyonları
  • Her kombinasyon için:
    • Toplanan sütunların total_val parametresi olup olmadığı belirleyip satırları bu değere göre filtreleyin; Aksi takdirde, tüm satırları seçin
    • Toplanmış sütunları bırakın
    • Satırları, kalan boyut sütunlarının değerlerine göre gruplandırın
    • Şunda belirtilen yöntemi kullanarak her metriği toplayın: aggregation parametresi
    • Sonuç için dilim ve ilişkilendirilmiş tablo oluştur

Her gruplandırmada yalnızca tek bir değer varsa ve toplama işlevi SUM (varsayılan değer) değerine ayarlanırsa kaynaktaki ve oluşturulan tablolardaki metrik değerleri aynı olur, yani yeni değer olmaz oluşturulur. Dolayısıyla, total_val parametresini kullanmak ve yalnızca bir adet “toplam” her kombinasyon için satır boyutları, önceden hesaplanmış toplamaları doğrudan kaynakta depolamanızı sağlar.

Uyarı: Oluşturulan dilimlerin sayısı 2toplanmış sütuna eşittir. Bu seçeneğin, geniş bir çok uzun çalışma sürelerine ve/veya veri kümelerinde yer alır.

Gelişmiş Örnek

Önceki örnektekiyle aynı giriş verilerine sahip olduğumuzu, ancak artık ülkeler genelinde toplamları da içeriyor:

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

Her yaş grubunun toplamı, ülke değerlerinin toplamıyla eşleşmeyebilir Çünkü örneğin, bir proje yöneticisinin kullandığı metodolojideki veya diğer ülkeleri de listeler.

Şimdi, aşağıdaki ek bilgilere sahip bir DSPL veri kümesi oluşturmak istiyoruz özellikler:

  1. "Topla" 300.000'den fazla yalnızca yaş grubuna göre vaka sayısı
  2. Standart geo:country kullanın Kavramı country sütunu için ödeyeceğiz, böylece otomatik olarak bunların tam adlarını, konumlarını v.b. al
  3. disease_cases kavramını quantity:amount uzatın, Böylece, XML dosyasına birim bilgilerini (manuel olarak) ekleyebiliriz.

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ırdığımızda, elde ettiğimiz ek bir dilim tablosu ülke arasındaki farkı ortadan kaldırır:

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

Toplam değerlere ve total_val etiketi eklediysek hesaplanmış toplamını gösterir.

Ayrıca, XML dosyasındaki disease_cases tanımı. artık istendiği gibi quantity:amount kaynağından gelen uzantıyı içeriyor. İlgili içeriği oluşturmak için kullanılan country tanımı XML dosyasından çıkarıldı çünkü bunun yerine içe aktarılmış bir kavram kullanıyoruz.

Çeşitli adları, açıklamaları ve birim bilgilerini girdikten sonra, veri kümesi paketini sıkıştırabilir ve dışa aktarmak için Public Data Explorer'a yükleyebilirsiniz. görselleştirmeye çok yardımcı olur.