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 ของ DSPLcountry_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 ที่มีองค์ประกอบเพิ่มเติมต่อไปนี้ ได้แก่
- "ภาพรวม" เพื่อให้เราได้รับเชื้อโรคทั้งหมด กรณีตามกลุ่มอายุเพียงอย่างเดียว
- ใช้ Canonical
geo:country
สำหรับคอลัมน์country
เพื่อให้เราสามารถ ดูชื่อเต็ม สถานที่ ฯลฯ สำหรับ - ทำให้แนวคิด
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 การแสดงข้อมูลผ่านภาพ