DSPL Gen là một tiện ích dòng lệnh giúp chuyển đổi Bảng dữ liệu CSV thành một tập dữ liệu DSPL đơn giản. Công cụ này phân tích cú pháp nội dung nhập tạo tất cả bảng dữ liệu cần thiết và bố trí tệp DSPL XML. Kết quả thu được là một tập dữ liệu gần như hoàn chỉnh "mẫu" chỉ yêu cầu tinh chỉnh một chút trước khi tải lên và trực quan hoá.
Giả định cơ bản của quy trình Tạo DSPL là mỗi cột trong tệp CSV đầu vào tương ứng với một khái niệm DSPL duy nhất và mỗi hàng là một lần quan sát duy nhất cho tổ hợp phương diện. Công cụ này hoạt động theo lặp lại qua các cột, thiết lập siêu dữ liệu thích hợp cho mỗi cột / khái niệm (ví dụ: ID, loại, cho dù đó là phương diện hay chỉ số, và sau đó tạo tất cả định nghĩa và lát cắt khái niệm cần thiết bảng.
Đang chạy chiến dịch Tạo DSPL
Cú pháp
Lưu ý: Những hướng dẫn này giả định rằng bạn đã làm theo hướng dẫn cài đặt trên trang Công cụ DSPL.
Để chạy DSPL Gen, hãy chuyển đến dòng lệnh / lời nhắc trên hệ thống rồi nhập:
python dsplgen.py -o [output path] [path to CSV file]
trong đó các thuật ngữ trong ngoặc được thay thế như sau:
[output path]
: Đường dẫn đến thư mục bạn muốn các tệp đầu ra của bạn sẽ được đặt; thư mục này phải tồn tại trong hệ thống tệp của bạn.[path to CSV file]
: Đường dẫn đến tệp CSV mà bạn nhập. Xem phần bên dưới để biết thêm chi tiết về cách định dạng tệp này.
Thành phần -o [output path]
là không bắt buộc; nếu bị bỏ qua, giá trị
các tệp đầu ra sẽ được đặt trong thư mục hiện tại.
Sau đó, công cụ này chạy vòng lặp thông qua tệp CSV của bạn, trích xuất khái niệm định nghĩa và tạo bảng lát cắt. Nếu không phát hiện thấy lỗi nào, một tệp XML và một hoặc nhiều tệp CSV được ghi vào thư mục đầu ra.
Cuối cùng, mở tệp XML trong trình chỉnh sửa văn bản bạn chọn và thực hiện
bất kỳ thay đổi mong muốn nào. Ít nhất, bạn nên điền tên,
mô tả và các giá trị khác đã được công cụ đánh dấu bằng
Ký hiệu ** INSERT ... **
.
Ví dụ đơn giản
Giả sử chúng ta có một tệp CSV cho biết tổng số trường hợp của một bệnh, được chia nhỏ theo tháng, quốc gia và nhóm tuổi. Để đơn giản hoá, giả sử có 2 giá trị của mỗi phương diện:
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
Chạy công cụ trên dữ liệu đầu vào ở trên sẽ tạo ra 4 tệp:
dataset.xml
: Mẫu XML DSPLcountry_table.csv
: Giá trị củacountry
khái niệmage_group_table.csv
: Giá trị của Khái niệm vềage_group
slice_0_table.csv
: Bảng cho lát tập dữ liệu (giống với bảng nhập dữ liệu, ngoại trừ chức năng sắp xếp)
Trong trường hợp cụ thể này, công cụ có thể đoán chính xác tất cả và định dạng cột. Vì vậy, bạn chỉ cần chuyển đến tệp XML và chỉnh sửa các tên, mô tả và URL khác nhau trong siêu dữ liệu của tập dữ liệu.
Chú thích tệp CSV đầu vào của bạn
Tùy chọn cơ bản
Trong nhiều trường hợp, như ví dụ trên, Gen DSPL có thể đoán siêu dữ liệu cho từng cột, ví dụ: loại, định dạng và liệu đó có phải là hoặc chỉ số. Tuy nhiên, trong các trường hợp khác, công cụ có thể không đoán đúng những thứ này, có thể đoán sai hay đoán đúng, nhưng vẫn có thể không tuân theo hành vi mong muốn.
Để xử lý những trường hợp này, công cụ hỗ trợ thêm tính năng tạo DSPL tuỳ chọn/"gợi ý" trong hàng tiêu đề CSV. Cú pháp cho các đoạn mã này như sau sau:
column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...
Đặc biệt, hãy lưu ý rằng danh sách tuỳ chọn được đặt bên trong dấu ngoặc đơn ở bên phải tên cột và lựa chọn kế tiếp các chế độ cài đặt được phân tách bằng dấu chấm phẩy. Mỗi tùy chọn bao gồm một tên lựa chọn, dấu bằng và giá trị tuỳ chọn.
Tính năng Tạo DSPL hiện hỗ trợ các tuỳ chọn cơ bản sau:
Phương thức | Mô tả | Mặc định |
---|---|---|
type |
Loại dữ liệu DSPL cho cột này; phải là một trong date ,
float , integer hoặc string . |
Đoán từ dữ liệu |
format |
Định dạng của cột ngày này; như trong DSPL, định dạng này sẽ là được mã hoá bằng mã Joda DateTime tiêu chuẩn. | Đoán từ dữ liệu |
slice_role |
Vai trò của cột này trong bất kỳ lát cắt nào; phải là
dimension hoặc metric . |
dimension nếu cột thuộc loại date hoặc
string , nếu không thì metric |
concept |
Khái niệm chuẩn mà cột này trình bày, ví dụ:
geo:country ; thì khái niệm này sẽ được nhập và không có
định nghĩa sẽ được tạo trong tệp XML. |
Không có |
extends |
Khái niệm chuẩn mà cột này mở rộng, ví dụ:
entity:entity . |
Không có |
parent |
Khái niệm gốc cho cột này. Cấp độ gốc này phải là một phương diện khái niệm được xác định bên trong tập dữ liệu (tức là không được nhập); nếu được cung cấp, thông tin này sẽ được dùng để xác định hệ thống phân cấp khái niệm trong tập dữ liệu. Xin lưu ý rằng mỗi thực thể con chỉ có thể có một thực thể mẹ. Nếu có nhiều khi phát hiện các giá trị gốc thì công cụ sẽ báo lỗi. |
Không có |
Dữ liệu tóm tắt giá trị
Ngoài "gợi ý" cơ bản các tuỳ chọn được mô tả ở trên,
Tạo DSPL cũng hỗ trợ dữ liệu tổng hợp lát cắt: với một bảng duy nhất
đầu vào, công cụ này có thể tự động tạo thêm bảng có giới hạn
là các tập hợp con của thứ nguyên. Ví dụ: nếu bảng dữ liệu đầu vào của bạn tương ứng với
một lát cắt có ba chiều không theo thời gian (ví dụ: dimension1
,
dimension2
và dimensions3
), công cụ này có thể
bạn cũng có thể tạo một số phần bổ sung: chỉ dimension1
,
chỉ dimension2
, chỉ dimension1
và
dimension2
, v.v.
Việc thêm các phần bổ sung này có thể giúp bạn dễ dàng khám phá tập dữ liệu hơn vì công cụ này làm giảm số lượng bộ lọc tham số cần thiết để tạo trực quan. Mặt khác, quá trình này có thể tạo ra "mới" không tìm thấy dữ liệu nào trong tệp gốc, do đó, tệp này cũng có thể gây ra lỗi nếu không sử dụng đúng cách; hãy kiểm tra kỹ các số được tổng hợp trước khi xuất bản tập dữ liệu.
Quá trình hợp nhất được kích hoạt bằng cách thêm một số tuỳ chọn bổ sung trong tiêu đề CSV của mục nhập:
Phương thức | Mô tả | Mặc định |
---|---|---|
aggregation |
Phương thức tổng hợp được sử dụng khi kết hợp nhiều giá trị
của cột này; phải là một trong các giá trị sau: AVG , COUNT
MAX , MIN hoặc SUM ; chỉ
có ý nghĩa đối với chỉ số. |
SUM |
rollup |
Nếu giá trị là true , khái niệm cho
cột này là "tổng hợp" (ví dụ: tổng hợp lại);
chỉ có ý nghĩa đối với khái niệm thứ nguyên. |
Sai |
total_val |
Giá trị trong cột này cho biết các hàng sẽ được giữ lại khi cột được cuộn lên; chỉ có ý nghĩa đối với các khái niệm về thứ nguyên. | None |
Sau đó, DSPL Gen sẽ tính toán dữ liệu tổng hợp bằng thuật toán sau:
- Bằng cách sử dụng giá trị của thẻ
rollup
, hãy tính toán tất cả có thể tổ hợp cột - Đối với từng tổ hợp:
- Nếu bất kỳ cột tổng hợp nào có tham số
total_val
đặt, sau đó lọc các hàng theo giá trị này; nếu không, hãy chọn tất cả các hàng - Thả các cột đã tổng hợp
- Nhóm các hàng theo giá trị của các cột phương diện còn lại
- Tổng hợp từng chỉ số bằng cách sử dụng phương thức đã chỉ định trong
Tham số
aggregation
- Tạo một lát cắt và bảng liên kết cho kết quả
- Nếu bất kỳ cột tổng hợp nào có tham số
Lưu ý rằng nếu chỉ có một giá trị duy nhất trong mỗi nhóm và thuộc tính
được đặt thành SUM
(giá trị mặc định), thì hàm tổng hợp
các giá trị chỉ số trong bảng nguồn và bảng được tạo sẽ giống nhau, tức là không có giá trị mới
sẽ được tạo. Do đó, việc sử dụng tham số total_val
và đảm bảo
chỉ có một "tổng số" hàng cho mỗi kết hợp.
cho phép bạn lưu trữ dữ liệu tổng hợp được tính toán trước ngay trong nguồn.
Cảnh báo: Số lượng lát cắt được tạo là 2cột được cuộn lên. Áp dụng tuỳ chọn này cho có thể dẫn đến thời gian chạy rất dài và/hoặc lớn hơn tập dữ liệu.
Ví dụ nâng cao
Giả sử chúng ta có dữ liệu đầu vào giống như trong ví dụ trước, nhưng hiện đã bao gồm số liệu tổng hợp tại các quốc gia:
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
Tổng giá trị của từng nhóm tuổi có thể không khớp với tổng giá trị theo quốc gia bởi vì sự khác biệt về phương pháp hoặc sự tồn tại của các quốc gia khác không có trong danh sách.
Bây giờ, chúng tôi muốn tạo một tập dữ liệu DSPL có các đặc điểm tính năng:
- "Tổng hợp" ở nhiều quốc gia để chúng tôi biết được tổng số bệnh số ca nhiễm theo nhóm tuổi
- Sử dụng
geo:country
chuẩn cho cộtcountry
để chúng tôi có thể tự động lấy tên đầy đủ, vị trí, v.v. của các địa điểm này - Mở rộng khái niệm
disease_cases
quantity:amount
, để chúng tôi có thể thêm thông tin về đơn vị vào tệp XML (theo cách thủ công)
Để thực hiện việc này, chúng ta sửa đổi hàng tiêu đề của tệp CSV đầu vào như sau:
date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]
Chạy lại công cụ này, giờ đây chúng ta sẽ có thêm một bảng lát cắt xoá bỏ sự khác biệt theo quốc gia:
date,age_group,disease_cases 01/2000,old,152012 02/2000,old,211310 01/2000,young,241011 02/2000,young,240131
Lưu ý rằng nếu chúng tôi chưa đưa tổng giá trị và
Thẻ total_val
trong bảng nguồn thì chúng tôi đã có thể nhận được
tổng được tính cho từng nhóm tuổi.
Ngoài ra, định nghĩa của disease_cases
trong tệp XML
hiện bao gồm tiện ích từ quantity:amount
, như mong muốn. Chiến lược phát hành đĩa đơn
phần khai báo của country
bị loại bỏ khỏi tệp XML vì
thay vào đó, chúng tôi đang sử dụng khái niệm được nhập
cho quy trình này.
Sau khi điền các tên, mô tả và thông tin đơn vị khác nhau, chúng tôi có thể nén gói tập dữ liệu và tải lên Public Data Explorer để trực quan.