รุ่น DSPL

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

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

กำลังเรียกใช้ 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 และแยกแนวคิด และสร้าง Slice Table หากไม่พบข้อผิดพลาด 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: เทมเพลต XML ของ DSPL
  • country_table.csv: ค่าของ country แนวคิด
  • age_group_table.csv: ค่าของฟิลด์ แนวคิด age_group รายการ
  • slice_0_table.csv: ตารางสำหรับส่วนแบ่งชุดข้อมูล (เหมือนกับ ตารางอินพุต ยกเว้นการจัดเรียง)

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

การกำหนดคำอธิบายประกอบใน CSV อินพุต

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

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

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

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

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

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

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

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

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

ไม่มี

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

นอกเหนือจากข้อมูลพื้นฐาน "คำใบ้" ตัวเลือกที่อธิบายไว้ข้างต้น DSPL Gen ยังรองรับภาพรวมของส่วนแบ่งด้วย เนื่องจากหากกำหนดตารางเดียว เครื่องมือจะสามารถสร้างตารางเพิ่มเติมโดยอัตโนมัติ ส่วนย่อยของมิติข้อมูล เช่น ถ้าตารางอินพุตของคุณสอดคล้องกับ ส่วนแบ่งที่มีมิติข้อมูลที่ไม่ใช่เวลา 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]

การเรียกใช้เครื่องมืออีกครั้ง ตอนนี้เราได้รับตาราง Slice เพิ่มเติม กำจัดความแตกต่างตามประเทศ

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 การแสดงข้อมูลผ่านภาพ