รุ่น DSPL

DSPL Gen เป็นยูทิลิตีบรรทัดคําสั่งที่ช่วยแปลงตารางข้อมูล CSV เป็นชุดข้อมูล DSPL แบบง่าย เครื่องมือจะแยกวิเคราะห์ไฟล์อินพุต สร้างตารางข้อมูลที่จําเป็นทั้งหมด และวางไฟล์ DSPL XML ผลลัพธ์ที่ได้คือ "เทมเพลต" ชุดข้อมูลที่เกือบสมบูรณ์ซึ่งต้องการเพียงการปรับแต่งเล็กน้อยก่อนอัปโหลดและแสดงภาพ

สมมติฐานพื้นฐานเบื้องหลัง DSPL Gen คือแต่ละคอลัมน์ในไฟล์ CSV อินพุตสอดคล้องกับแนวคิด DSPL รายการเดียว และแต่ละแถวคือการสังเกตการณ์ 1 ครั้งสําหรับการรวมมิติข้อมูล เครื่องมือนี้ทํางานโดยทําซ้ําผ่านคอลัมน์ต่างๆ เพื่อสร้างข้อมูลเมตาที่เหมาะสมสําหรับแต่ละคอลัมน์ / แนวคิด (เช่น รหัส ประเภท ว่าเป็นมิติข้อมูลหรือเมตริก ฯลฯ) แล้วสร้างคําจํากัดความของแนวคิดและตารางส่วนย่อยที่จําเป็นทั้งหมด

กําลังเรียกใช้ DSPL Gen

ไวยากรณ์

หมายเหตุ: คําแนะนําเหล่านี้จะถือว่าคุณได้ทําตามวิธีการติดตั้งที่ระบุไว้ในหน้าเครื่องมือ DSPL แล้ว

หากต้องการเรียกใช้ DSPL Gen ให้ไปที่เทอร์มินัล / ข้อความแจ้งในระบบแล้วพิมพ์

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

โดยแทนที่คําที่อยู่ในวงเล็บ ดังนี้

  • [output path]: เส้นทางไปยังไดเรกทอรีที่คุณต้องการวางไฟล์เอาต์พุต โดยไดเรกทอรีนี้ต้องมีอยู่ในระบบไฟล์อยู่แล้ว
  • [path to CSV file]: เส้นทางไปยังไฟล์ CSV ที่คุณป้อน ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีจัดรูปแบบไฟล์นี้ได้ที่ส่วนด้านล่าง

คอมโพเนนต์ -o [output path] เป็นตัวเลือกที่ไม่บังคับ หากไม่สนใจ ระบบจะวางไฟล์เอาต์พุตในไดเรกทอรีปัจจุบัน

จากนั้นเครื่องมือจะเรียกใช้ ทําซ้ําผ่านไฟล์ CSV, ดึงคําจํากัดความของแนวคิด และสร้างตารางส่วนแบ่ง หากไม่พบข้อผิดพลาด ระบบจะเขียนไฟล์ XML และไฟล์ CSV อย่างน้อย 1 ไฟล์ไปยังไดเรกทอรีเอาต์พุต

สุดท้าย ให้เปิดไฟล์ XML ในเครื่องมือแก้ไขข้อความที่ต้องการ และทําการเปลี่ยนแปลงตามต้องการ คุณควรเติมชื่อ คําอธิบาย และค่าอื่นๆ ที่เครื่องมือทําเครื่องหมายไว้ในรูปแบบ ** INSERT ... ** เป็นอย่างน้อย

ตัวอย่างง่ายๆ

สมมติว่าเรามี CSV ที่ระบุจํานวนเคสทั้งหมดของโรคซึ่งแบ่งตามเดือน ประเทศ และกลุ่มอายุ เพื่อความเรียบง่าย สมมติว่าสมมติว่าแต่ละมิติข้อมูลมีค่า 2 ค่า ดังนี้

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

การเรียกใช้เครื่องมือกับอินพุตข้างต้นจะสร้างไฟล์ 4 ไฟล์ ดังนี้

  • dataset.xml: เทมเพลต DSPL XML
  • country_table.csv: ค่าของแนวคิด country
  • age_group_table.csv: ค่าของแนวคิด age_group
  • slice_0_table.csv: ตารางสําหรับชุดข้อมูลชุดข้อมูล (เหมือนกันกับตารางอินพุต ยกเว้นการจัดเรียง)

ในกรณีนี้ เครื่องมือจะเดาประเภทคอลัมน์และรูปแบบทั้งหมดได้ถูกต้อง ดังนั้นสิ่งที่คุณต้องทําก็แค่ไปที่ไฟล์ XML แล้วแก้ไขชื่อ คําอธิบาย และ URL ต่างๆ ในข้อมูลเมตาของชุดข้อมูล

ใส่คําอธิบายประกอบในอินพุต CSV

ตัวเลือกพื้นฐาน

ในหลายกรณี ดังเช่นตัวอย่างข้างต้น DSPL Gen จะเดาข้อมูลเมตาพื้นฐานสําหรับแต่ละคอลัมน์ได้ เช่น ประเภท รูปแบบ และไม่ว่าจะเป็นมิติข้อมูลหรือเมตริก แต่ในกรณีอื่นๆ เครื่องมืออาจเดาไม่ได้ หรืออาจเดาไม่ถูกต้อง หรืออาจเดาถูก แต่ยังคงไม่เป็นไปตามพฤติกรรมที่ต้องการ

หากต้องการจัดการกรณีเหล่านี้ เครื่องมือนี้รองรับการเพิ่มตัวเลือกการสร้าง DSPL/"คําแนะนํา" ในแถวส่วนหัว CSV ไวยากรณ์สําหรับเหตุการณ์ต่อไปนี้

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

โดยเฉพาะอย่างยิ่ง โปรดทราบว่ารายการตัวเลือกจะอยู่ภายในวงเล็บทางด้านขวาของชื่อคอลัมน์ และการตั้งค่าตัวเลือกต่อเนื่องจะคั่นด้วยเครื่องหมายเซมิโคลอน แต่ละตัวเลือกประกอบด้วยชื่อตัวเลือก เครื่องหมายเท่ากับ และค่าของตัวเลือก

ปัจจุบัน DSPL Gen รองรับตัวเลือกพื้นฐานต่อไปนี้

ตัวเลือก คำอธิบาย ค่าเริ่มต้น
type ประเภทข้อมูล DSPL สําหรับคอลัมน์นี้ต้องเป็น date, float, integer หรือ string เดาจากข้อมูล
format รูปแบบของคอลัมน์วันที่นี้ ควรเข้ารหัสรูปแบบนี้โดยใช้มาตรฐาน Joda DateTime เช่นเดียวกับใน DSPL เดาจากข้อมูล
slice_role บทบาทของคอลัมน์นี้อยู่ในชิ้นส่วนใดๆ ต้องเป็น dimension หรือ metric dimensionหากคอลัมน์เป็นประเภท date หรือ string ไม่เช่นนั้นจะเป็น metric
concept แนวคิด Canonical ที่คอลัมน์นี้แสดงถึง เช่น geo:country (หากมี) ระบบจะนําเข้าแนวคิดและไม่มีการสร้างคําจํากัดความในไฟล์ XML ไม่มี
extends แนวคิด Canonical ที่คอลัมน์นี้ขยาย เช่น entity:entity ไม่มี
parent

แนวคิดหลักสําหรับคอลัมน์นี้ ซึ่งระดับบนสุดนี้ต้องเป็นแนวคิดด้านมิติข้อมูลที่กําหนดไว้ภายในชุดข้อมูล (กล่าวคือ ไม่ได้นําเข้า) เมื่อใช้ตัวเลือกนี้ ระบบจะใช้ข้อมูลนี้เพื่อกําหนดลําดับชั้นของแนวคิดในชุดข้อมูล

โปรดทราบว่าอินสแตนซ์ย่อยแต่ละรายการมีผู้ปกครองได้เพียง 1 คนเท่านั้น หากตรวจพบค่าหลักหลายค่า เครื่องมือจะสร้างข้อผิดพลาด

ไม่มี

ภาพรวมมูลค่า

นอกเหนือจากตัวเลือก "คําแนะนํา" พื้นฐานที่อธิบายไว้ข้างต้นแล้ว DSPL รุ่นยังรองรับควบรวมด้วย เนื่องจากอินพุต 1 ตารางช่วยให้เครื่องมือสร้างตารางเพิ่มเติมซึ่งมีมิติข้อมูลชุดย่อยแบบจํากัดได้โดยอัตโนมัติ เช่น หากตารางอินพุตของคุณตรงกับชิ้นส่วนที่มีมิติข้อมูลที่ไม่ใช่เวลา 3 ส่วน (เช่น dimension1, dimension2 และ dimensions3) เครื่องมือสามารถสร้างส่วนแบ่งเพิ่มเติมได้ด้วย เช่น dimension1, เฉพาะ dimension2, เฉพาะ dimension1 และ dimension2 เป็นต้น

การเพิ่มส่วนเพิ่มเติมเหล่านี้จะทําให้ชุดข้อมูลสํารวจได้ง่ายขึ้นเนื่องจากจะทําให้ตัวกรองมิติข้อมูลมีจํานวนน้อยลงในการสร้างภาพ ในทางกลับกัน กระบวนการนี้อาจแนะนําข้อมูล "ใหม่" ที่ไม่พบในไฟล์ต้นฉบับ จึงอาจทําให้เกิดข้อผิดพลาดได้หากไม่ได้ใช้อย่างถูกต้อง โปรดตรวจสอบตัวเลขควบรวมก่อนเผยแพร่ชุดข้อมูล

ระบบจะเรียกให้แสดงกระบวนการโดยรวมตัวเลือกเพิ่มเติมบางอย่างในส่วนหัว CSV ของอินพุต ดังนี้

ตัวเลือก คำอธิบาย ค่าเริ่มต้น
aggregation วิธีการรวมที่จะใช้เมื่อรวมหลายค่าของคอลัมน์นี้ โดยต้องเป็น AVG, COUNT, MAX, MIN หรือ SUM อย่างใดอย่างหนึ่ง และมีความหมายสําหรับเมตริกเท่านั้น SUM
rollup หากค่าคือ true แนวคิดสําหรับคอลัมน์นี้คือ "ควบรวม" (กล่าวคือ รวมเข้าด้วยกัน) จะมีความหมายสําหรับแนวคิดมิติข้อมูลเท่านั้น ไม่จริง
total_val ค่าในคอลัมน์นี้ซึ่งระบุแถวที่จะเก็บไว้เมื่อควบรวมคอลัมน์นี้ แต่มีความหมายสําหรับแนวคิดมิติข้อมูลเท่านั้น None

จากนั้น DSPL Gen จะคํานวณภาพรวมโดยใช้อัลกอริทึมต่อไปนี้

  • คํานวณค่าของคอลัมน์ที่เป็นไปได้ทั้งหมดโดยใช้ค่าของแท็ก rollup
  • สําหรับชุดค่าผสมแต่ละรายการ
    • หากคอลัมน์ภาพรวมมีการตั้งค่าพารามิเตอร์ total_val ให้กรองแถวตามค่านี้ หรือเลือกแถวทั้งหมด
    • วางคอลัมน์ควบรวม
    • จัดกลุ่มแถวตามค่าของคอลัมน์มิติข้อมูลที่เหลือ
    • รวบรวมเมตริกแต่ละรายการโดยใช้วิธีการที่ระบุในพารามิเตอร์ aggregation
    • สร้างส่วนแบ่งและตารางที่เกี่ยวข้องสําหรับผลลัพธ์

โปรดทราบว่าหากกลุ่มเดียวมีค่าเดียวและมีการรวมฟังก์ชันการรวมเป็น SUM (ค่าเริ่มต้น) ค่าเมตริกในตารางต้นทางและที่สร้างขึ้นจะเหมือนกัน กล่าวคือ ไม่มีการสร้างค่าใหม่ ดังนั้น การใช้พารามิเตอร์ total_val และตรวจสอบว่ามีแถว "ทั้งหมด" เพียง 1 แถวสําหรับชุดค่าผสมของมิติข้อมูลอื่นๆ แต่ละรายการจะช่วยให้คุณจัดเก็บการรวบรวมข้อมูลที่คํานวณไว้ล่วงหน้าในแหล่งที่มาได้โดยตรง

คําเตือน: จํานวนส่วนแบ่งที่สร้างขึ้นจะเท่ากับคอลัมน์ภาพรวม 2 คอลัมน์ การใช้ตัวเลือกนี้กับคอลัมน์จํานวนมากอาจทําให้ใช้เวลาในการเรียกใช้และ/หรือชุดข้อมูลขนาดใหญ่มาก

ตัวอย่างขั้นสูง

สมมติว่าเรามีข้อมูลอินพุตเหมือนกับในตัวอย่างก่อนหน้านี้ แต่ตอนนี้รวมข้อมูลรวมในประเทศต่างๆ แล้ว

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

ค่ารวมสําหรับกลุ่มอายุแต่ละกลุ่มอาจไม่ตรงกับผลรวมของค่าประเทศเนื่องจากตัวอย่างเช่น ความแตกต่างของวิธีการหรือการมีอยู่ของประเทศอื่นๆ ที่ไม่ได้ระบุในรายการ

ตอนนี้เราต้องการสร้างชุดข้อมูล DSPL ที่มีฟีเจอร์เพิ่มเติมต่อไปนี้

  1. "เตรียมพร้อม" ในประเทศเหล่านั้น เพื่อให้เราได้รับข้อมูลโรคติดเชื้อทั้งหมดตามกลุ่มอายุเท่านั้น
  2. ใช้แนวคิด Canonical geo:country สําหรับคอลัมน์ country เพื่อให้เราดูชื่อเต็ม สถานที่ตั้ง ฯลฯ สําหรับคอลัมน์เหล่านี้ได้โดยอัตโนมัติ
  3. ทําให้แนวคิด disease_cases ขยาย quantity:amount เพื่อให้เราเพิ่มข้อมูลหน่วยในไฟล์ XML (ด้วยตนเอง) ได้

ในการดําเนินการนี้ เราจะแก้ไขแถวส่วนหัวของ CSV อินพุตดังนี้

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

เมื่อเรียกใช้เครื่องมืออีกครั้ง ตารางตารางอีกตารางหนึ่งจะแจกแจงความแตกต่างตามประเทศ ดังนี้

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

โปรดทราบว่าหากเราไม่รวมค่าทั้งหมดและแท็ก total_val ในตารางต้นทาง เราจะคํานวณผลรวมสําหรับกลุ่มอายุแต่ละกลุ่ม

นอกจากนี้ คําจํากัดความของ disease_cases ในไฟล์ XML ตอนนี้มีส่วนขยายจาก quantity:amount ตามที่ต้องการแล้ว คําจํากัดความของ country หายไปจากไฟล์ XML เนื่องจากเราใช้แนวคิดที่นําเข้าในกรณีนี้แทน

หลังจากกรอกชื่อ คําอธิบาย และข้อมูลหน่วยต่างๆ แล้ว เราสามารถบีบอัดชุดข้อมูลของชุดข้อมูล และอัปโหลดลงใน Public Data Explorer เพื่อสร้างภาพ