Kiến thức
19 phút đọc

Xác Định Và Chỉ Định Kiểu Dữ Liệu Của Một Cột

Trong Power BI Desktop, bạn có thể xác định và chỉ định loại dữ liệu của cột trong Power Query Editor hoặc trong Data View hoặc Report View:

Các kiểu dữ liệu trong Power Query Editor

dữ liệu

Các kiểu dữ liệu trong Data View và Report View

dữ liệu

Trình thả xuống Data Type trong Power Query Editor có hai loại dữ liệu hiện không có trong Data hoặc Report View: Date/Time/Timezone và Duration. Khi một cột có các loại này được tải vào mô hình và được xem trong chế độ Data hoặc Report View, một cột có loại Date/Time/Timezone sẽ được chuyển đổi thành Date/Time và một cột có loại Duration sẽ được chuyển đổi thành một số thập phân.

Kiểu dữ liệu nhị phân hiện không được hỗ trợ bên ngoài Power Query Editor. Bên trong Power Query Editor, bạn có thể sử dụng nó khi tải các tệp nhị phân nếu bạn chuyển đổi nó sang các loại khác trước khi tải nó vào mô hình Power BI. Nó tồn tại trong menu Data View và Report View vì các lý do cũ nhưng nếu bạn cố tải các cột nhị phân vào mô hình Power BI, bạn có thể gặp lỗi.

1. Các kiểu dữ liệu số:

Power BI Desktop hỗ trợ ba kiểu dữ liệu số:

Số thập phân – Biểu thị số dấu phẩy động 64 bit (tám byte).

Số thập phân cố định – Có một vị trí cố định cho dấu tách thập phân. Đây là loại số thập phân phổ biến nhất, xử lý số nguyên và phân số. Giá trị âm và dương, từ -1.79E+308 đến 1.79E+308. Ví dụ: 34, 34.01, 34.000367063 là hợp lệ. Độ chính xác cao, 15 chữ số. Dấu tách thập phân có thể xuất hiện bất kỳ đâu. Tương đương với lưu trữ số trong Excel. Được chỉ định trong Tabular Object Model như DataType.Double.1.

Số nguyên – Biểu thị giá trị số nguyên 64 bit (tám byte). Bởi vì nó là một số nguyên, nó không có chữ số nào ở bên phải chữ số thập phân. Nó cho phép 19 chữ số; các số nguyên âm hoặc dương trong khoảng -9.223.372.036.854.775.807 (-2^63+1) và 9.223.372.036.854.775.806 (2^63-2). Nó có thể đại diện cho độ chính xác lớn nhất có thể của các loại dữ liệu số khác nhau. Như với loại số thập phân cố định, số nguyên có thể hữu ích trong trường hợp bạn cần kiểm soát làm tròn số. Kiểu dữ liệu số nguyên được chỉ định trong TOM là DataType.Int64 Enum type 1.

Đảm bảo độ chính xác của các phép tính loại số:

Giá trị số thập phân được lưu dưới dạng loại dữ liệu gần đúng theo IEEE 754. Loại dữ liệu này có hạn chế độ chính xác. Chỉ lưu gần đúng hoặc làm tròn. Có thể mất chính xác vì số chữ số thập phân không định lượng đủ. Kết quả tính toán có thể sai hoặc không chính xác trong một số trường hợp.

Phép tính so sánh liên quan đến đẳng thức (=, <>, >=, <=) giữa giá trị số thập phân có thể dẫn đến kết quả sai. Khi sử dụng hàm RANKX, kết quả có thể tính hai lần và khác nhau. Sự khác biệt giữa hai con số không nhìn thấy nhưng có thể dẫn đến kết quả xếp hạng sai. Tránh kết quả sai bằng cách thay đổi kiểu dữ liệu hoặc làm tròn bắt buộc. Kiểu dữ liệu số thập phân cố định có độ chính xác cao hơn.

Khả năng trả về kết quả sai khi tính tổng cột dữ liệu số thập phân rất hiếm. Phân bố số trong cột ảnh hưởng đến kết quả. Tính trước số dương hay số âm có thể làm mất độ chính xác. Tổng cân bằng số dương và âm sẽ trả về kết quả chính xác. Để đảm bảo kết quả chính xác, hãy chuyển đổi kiểu dữ liệu.

2. Các kiểu dữ liệu Date/Time:

Power BI Desktop hỗ trợ năm loại dữ liệu Ngày/Giờ trong Query View. Cả Ngày/Giờ/Múi giờ và Thời lượng đều được chuyển đổi trong khi tải vào mô hình. Mô hình dữ liệu Power BI Desktop chỉ hỗ trợ ngày/giờ, nhưng chúng có thể được định dạng độc lập thành ngày hoặc giờ.

Ngày/Giờ – Đại diện cho cả giá trị ngày và giờ. Bên dưới các trang bìa, giá trị Ngày/Giờ được lưu trữ dưới dạng kiểu dữ liệu số Thập phân. Vì vậy, bạn thực sự có thể chuyển đổi giữa hai loại. Phần thời gian của một ngày được lưu trữ dưới dạng phân số thành bội số nguyên của 1/300 giây (3,33 ms). Ngày giữa năm 1900 và 9999 được hỗ trợ.

Ngày – Chỉ đại diện cho một Ngày (không có phần thời gian). Khi được chuyển đổi thành mô hình, Ngày giống với giá trị Ngày/Giờ với giá trị phân số bằng 0.

Thời gian – Chỉ đại diện cho Thời gian (không có phần Ngày). Khi được chuyển đổi thành mô hình, giá trị Thời gian giống với giá trị Ngày/Giờ không có chữ số ở bên trái của vị trí thập phân.

Ngày/Giờ/Múi giờ – Thể hiện Ngày/Giờ UTC với phần bù múi giờ. Nó được chuyển đổi thành Ngày/Giờ khi được tải vào mô hình. Mô hình Power BI không điều chỉnh múi giờ dựa trên vị trí hoặc ngôn ngữ của người dùng, v.v. Nếu giá trị 09:00 được tải vào mô hình ở Hoa Kỳ, giá trị này sẽ hiển thị là 09:00 ở bất kỳ nơi nào mở hoặc xem báo cáo.

Duration – Đại diện cho một khoảng thời gian. Nó được chuyển đổi thành loại số thập phân khi được tải vào mô hình. Là một loại số thập phân, nó có thể được cộng hoặc trừ khỏi trường Ngày/Giờ với kết quả chính xác. Là một loại số thập phân, bạn có thể dễ dàng sử dụng nó trong các trực quan hóa hiển thị độ lớn.

3. Kiểu dữ liệu chữ:

Văn bản – Một chuỗi dữ liệu ký tự Unicode. Có thể là chuỗi, số hoặc ngày được biểu thị ở định dạng văn bản. Độ dài chuỗi tối đa là 268.435.456 ký tự Unicode (256 ký tự lớn) hoặc 536.870.912 byte.

Power BI lưu trữ dữ liệu theo những cách có thể khiến nó hiển thị dữ liệu khác đi trong một số tình huống nhất định. Phần này mô tả các tình huống phổ biến khi làm việc với dữ liệu văn bản có vẻ hơi thay đổi giữa truy vấn dữ liệu bằng Power Query và sau đó, sau khi dữ liệu đã được tải.

Xem thêm: So Sánh Các Kiểu Kết Nối Dữ Liệu

3.1. Trường hợp đặc biệt:

Công cụ lưu trữ và truy vấn dữ liệu trong Power BI không phân biệt chữ hoa chữ thường – có nghĩa là công cụ coi các cách viết hoa khác nhau của các chữ cái có cùng giá trị: a bằng A. Tuy nhiên, Power Query phân biệt chữ hoa chữ thường: a không bằng A. Sự khác biệt này dẫn đến tình huống dữ liệu văn bản được tải vào Power BI và sau đó thay đổi cách viết hoa, dường như không thể giải thích được. Trong ví dụ đơn giản sau đây, chúng tôi đã tải dữ liệu về các đơn đặt hàng: một cột OrderNo là duy nhất cho mỗi đơn đặt hàng và một cột người nhận có chứa tên của người nhận, được nhập thủ công tại thời điểm đặt hàng. Trong Power Query, dữ liệu này được hiển thị như sau:

dữ liệu

Lưu ý rằng có nhiều đơn đặt hàng có cùng tên người nhận, mặc dù được nhập vào hệ thống hơi khác một chút.

Khi chúng tôi chuyển đến tab Data trong Power BI sau khi dữ liệu được tải, bảng tương tự sẽ giống như bảng sau.

Chú ý: viết hoa tên đã thay đổi. Power BI không phân biệt chữ hoa, chữ thường. Power Query phân biệt, tạo sự khác biệt để hiển thị dữ liệu chính xác. Dữ liệu trong Power BI đã thay đổi sau khi tải vào.

Công cụ đánh giá hàng một khi tải dữ liệu. Lưu trữ giá trị duy nhất cho cột văn bản. Nén dữ liệu để tăng hiệu suất. Ba giá trị đầu tiên trong cột Địa chỉ độc nhất. Từ thứ tư trở đi, không phân biệt chữ hoa chữ thường. Tên được coi giống nhau. Chỉ lưu trữ tên đầu tiên. Tên MURALI DAS viết hoa vì lần đầu tiên đánh giá từ trên xuống dưới.

Hình ảnh này giải thích quá trình này:

Trong ví dụ trên, công cụ tải hàng dữ liệu đầu tiên, tạo từ điển Người nhận địa chỉ và thêm Taina Hasu vào đó. Nó cũng thêm một tham chiếu đến giá trị đó trong cột Người nhận trên bảng mà nó đã tải. Nó cũng làm điều này cho hàng thứ hai và thứ ba, vì cả hai tên này đều không tương đương với các tên khác khi so sánh bỏ qua chữ hoa chữ thường.

Người nhận ở hàng thứ tư được so sánh với các tên trong từ điển và được tìm thấy: vì động cơ không phân biệt chữ hoa chữ thường, TAINA HASU và Taina Hasu giống nhau. Do đó, công cụ không thêm tên mới vào từ điển Người nhận, thay vào đó, nó đề cập đến tên hiện có. Điều này cũng tương tự cho các hàng còn lại.

3.2. Dấu cách:

Sử dụng hàm Text.Trim để xóa khoảng trắng đầu, cuối văn bản. Tránh nhầm lẫn, vì Power BI tự động cắt bỏ khoảng trắng cuối. Không xóa khoảng trắng có thể dẫn đến mối quan hệ không tạo được. VD: Tải dữ liệu khách hàng: cột Tên chứa tên khách hàng, cột Chỉ mục là duy nhất. Tên khách hàng lặp lại bốn lần, nhưng với khoảng trắng khác nhau đầu, cuối.:

Hàng Khoảng trắng ở đầu Khoảng trắng ở cuối Tên (trong dấu ngoặc kép cho rõ ràng) Chỉ mục Độ dài văn bản
1 Không  Không “Dylan Williams” 1 14
2 Không “Dylan Williams “ 10 15
3 Có  Không  ” Dylan Williams” 20 15
4 ” Dylan Williams “ 40 16

Những thay đổi này có thể xảy ra khi nhập dữ liệu thủ công theo thời gian. Trong Power Query, dữ liệu kết quả được hiển thị như sau.

dữ liệu

Khi chúng tôi chuyển đến tab Data trong Power BI sau khi dữ liệu được tải, bảng tương tự sẽ giống như hình ảnh sau.

dữ liệu

Tuy nhiên, hình ảnh dựa trên dữ liệu này chỉ trả về hai hàng.

dữ liệu

Giá trị Chỉ mục ’60’ cho hàng đầu tiên. Hàng đầu tiên trong hình ảnh tải trước đó. Giá trị Chỉ mục ’11’ cho hàng thứ hai, đại diện cho hai hàng đầu. Công cụ xóa khoảng trắng cuối tự động. Không phải khoảng trắng đầu. Hàng giống nhau. Hình ảnh trả về kết quả. Hiện tượng có thể xảy ra với hình ảnh, thông báo lỗi liên quan mối quan hệ. Ví dụ: lỗi tương tự với cấu hình mối quan hệ của bạn.

load

Trong các trường hợp khác, bạn có thể không tạo được mối quan hệ nhiều-một hoặc một-một vì các giá trị trùng lặp được phát hiện.

Trong các trường hợp khác, bạn có thể không tạo được mối quan hệ nhiều-một hoặc một-một vì các giá trị trùng lặp được phát hiện.

Các lỗi này bắt nguồn từ khoảng trắng ở đầu hoặc ở cuối và có thể được giải quyết bằng cách sử dụng hàm Text.Trim để xóa khoảng trắng trong cửa sổ Chuyển đổi dữ liệu.

4. Kiểu dữ liệu Đúng/Sai:

Đúng/Sai – Một giá trị Boolean là Đúng hoặc Sai.

Power BI chuyển đổi và hiển thị dữ liệu khác nhau trong các tình huống nhất định. Phần này mô tả các trường hợp chuyển đổi giá trị Boolean phổ biến và cách giải quyết các chuyển đổi tạo ra kết quả không mong muốn trong Power BI.

Để có kết quả nhất quán và tốt nhất, khi tải một cột chứa thông tin Boolean (true/false) vào Power BI, hãy đặt loại cột thành True/False như được mô tả và giải thích trong ví dụ sau.

Dữ liệu khách hàng đăng ký nhận bản tin: TRUE hoặc FALSE. Khi xuất bản báo cáo Power BI, thấy 0, -1 thay vì TRUE, FALSE. Truy vấn, xuất bản, cập nhật dữ liệu để chuyển đổi và giải quyết.

Truy vấn đơn giản hóa cho bảng này được hiển thị trong hình ảnh sau đây.

Truy vấn đơn giản hóa

Loại dữ liệu của cột Subscribed To Newsletter được đặt thành Any và do thiết đặt loại dữ liệu đó, dữ liệu được tải dưới dạng văn bản vào mô hình Power BI:

Loại dữ liệu của cột Subscribed To Newsletter được đặt thành Any

Khi chúng tôi thêm một hình ảnh trực quan đơn giản hiển thị thông tin chi tiết cho mỗi khách hàng, dữ liệu sẽ xuất hiện ở dạng hình ảnh như mong đợi, cả trong Power BI Desktop và khi được xuất bản lên Power BI service.

customer number

Tuy nhiên, khi chúng tôi làm mới tập dữ liệu trong Power BI service, cột  Subscribed To Newsletter trong hình ảnh hiển thị các giá trị là -1 và 0, thay vì hiển thị chúng là TRUE hoặc FALSE:

subcribed to newletter

Nếu chúng tôi xuất bản lại báo cáo từ Power BI Desktop, cột  Subscribed To Newsletter sẽ lại hiển thị TRUE hoặc FALSE như chúng tôi mong đợi, nhưng sau khi quá trình làm mới diễn ra trong Power BI service, các giá trị lại được thay đổi thành hiển thị -1 và 0.

Giải pháp để đảm bảo điều này không xảy ra là đặt bất kỳ cột Boolean nào để nhập True/False trong Power BI Desktop và xuất bản lại báo cáo của bạn.

dữ liệu

Khi thay đổi được thực hiện, trực quan hóa hiển thị các giá trị trong cột Subscribed To Newsletter hơi khác một chút; thay vì toàn bộ văn bản đều là chữ in hoa (như đã nhập trong bảng), giờ đây chúng được in nghiêng và chỉ chữ cái đầu tiên được viết hoa, đây là kết quả của việc thay đổi kiểu dữ liệu của cột.

dữ liệu

Sau khi loại dữ liệu được thay đổi và xuất bản lại sang Power BI service, đồng thời khi quá trình làm mới diễn ra, các giá trị được hiển thị là True hoặc False, như mong đợi.

dữ liệu

Tóm lại, khi làm việc với dữ liệu Boolean trong Power BI, hãy đảm bảo các cột của bạn được đặt thành True/False trong Power BI Desktop.

5. Kiểu dữ liệu trống (blanks/nulls):

Trống – Là một loại dữ liệu trong DAX đại diện và thay thế các giá trị rỗng của SQL. Bạn có thể tạo khoảng trống bằng cách sử dụng chức năng BLANK và kiểm tra khoảng trống bằng cách sử dụng hàm logic ISBLANK.

6. Kiểu dữ liệu nhị phân:

Kiểu dữ liệu nhị phân có thể được sử dụng để biểu thị bất kỳ dữ liệu nào khác có định dạng nhị phân. Bên trong Power Query Editor, bạn có thể sử dụng nó khi tải các tệp nhị phân nếu bạn chuyển đổi nó sang các loại dữ liệu khác trước khi tải nó vào mô hình Power BI. Cột nhị phân không được hỗ trợ trong mô hình dữ liệu Power BI. Nó tồn tại trong menu Data View và Report View vì các lý do cũ nhưng nếu bạn cố tải các cột nhị phân vào mô hình Power BI, bạn có thể gặp lỗi.

7. Kiểu dữ liệu bảng:

DAX sử dụng bảng dữ liệu trong tính năng. Ví dụ: tổng hợp, thời gian tính toán. Một số hàm yêu cầu tham chiếu bảng. Các hàm khác trả về bảng dùng làm đầu vào hàm khác. Chức năng yêu cầu bảng làm đầu vào. Chỉ định biểu thức đánh giá bảng hoặc tham chiếu đến bảng cơ sở.

Xem thông tin khai giảng Khóa học Business Intelligence mới nhất tại Mastering Data Analytics. Liên hệ 0961 48 48 66 hoặc inbox Fanpage Mastering Data Analytics để đăng ký nhanh nhất nhé!