DSPL thế hệ

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 DSPL
  • country_table.csv: Giá trị của country khái niệm
  • age_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, dimension2dimensions3), 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 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ả

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:

  1. "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
  2. Sử dụng geo:country chuẩn cho cột country để 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
  3. 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.