SQL là một data source quen thuộc với các Data Analyst. Trong bài viết này chúng ta sẽ tìm hiểu cách để có thể lấy dữ liệu từ cơ sở dữ liệu quan hệ vào trong Power BI.
Nếu tổ chức của bạn sử dụng cơ sở dữ liệu quan hệ để ghi lại các giao dịch bán hàng của mình, bạn có thể sử dụng Power BI Desktop để thiết lập kết nối với cơ sở dữ liệu quan hệ của tổ chức, thay vì lấy dữ liệu từ các flat file riêng lẻ. Kết nối Power BI với cơ sở dữ liệu của bạn sẽ giúp bạn theo dõi hoạt động kinh doanh và xác định xu hướng, từ đó bạn có thể dự báo số liệu bán hàng, lập kế hoạch ngân sách, đặt ra các chỉ số và mục tiêu. Power BI Desktop có thể kết nối với nhiều cơ sở dữ liệu quan hệ trên cloud hoặc tại chỗ.
Hãy đến với tình huống giả định sau đây: bạn là chuyên viên phân tích dữ liệu và nhóm Sales tại công ty bạn đã yêu cầu bạn kết nối với cơ sở dữ liệu SQL Server tại chỗ của công ty và tải dữ liệu bán hàng vào Power BI Desktop để tạo report bán hàng.
Các nội dung chính
Kết nối với dữ liệu trong cơ sở dữ liệu quan hệ
Bạn có thể sử dụng tính năng Get data trong Powxer BI Desktop và chọn tùy chọn thích hợp cho cơ sở dữ liệu quan hệ của mình. Đối với ví dụ này, bạn sẽ chọn tùy chọn SQL Server, như được hiển thị trong ảnh chụp màn hình sau.
Tip: Bên cạnh nút Get data là các tùy chọn nguồn dữ liệu để truy cập nhanh, chẳng hạn như SQL Server.
Bước tiếp theo của bạn là nhập tên server và tên database vào cửa sổ SQL Server database. Hai tùy chọn chế độ kết nối dữ liệu là: Import (được chọn theo mặc định, được khuyến nghị) và DirectQuery. Hầu hết, bạn chọn Import. Các tùy chọn nâng cao khác cũng có sẵn trong cửa sổ SQL Server database, nhưng bạn có thể bỏ qua. Sau khi bạn đã thêm tên server và database của mình, bạn sẽ được nhắc đăng nhập bằng username và password. Bạn sẽ có ba tùy chọn đăng nhập:
- Windows – Sử dụng tài khoản Windows của bạn (thông tin đăng nhập Azure Active Directory).
- Database – Sử dụng thông tin đăng nhập database của bạn. Ví dụ: SQL Server có hệ thống đăng nhập và xác thực riêng. Nếu quản trị viên cơ sở dữ liệu đã cấp cho bạn thông tin đăng nhập vào cơ sở dữ liệu, bạn có thể cần nhập các thông tin đăng nhập đó vào tab Database.
- Microsoft account – Sử dụng thông tin đăng nhập tài khoản Microsoft của bạn. Tùy chọn này thường được sử dụng cho Azure services.
Chọn một tùy chọn đăng nhập, nhập username và password của bạn, sau đó chọn Connect.
Chọn dữ liệu để import
Sau khi cơ sở dữ liệu đã được kết nối với Power BI Desktop, cửa sổ Navigator hiển thị dữ liệu có sẵn trong nguồn dữ liệu của bạn (cơ sở dữ liệu SQL trong ví dụ này). Bạn có thể chọn một table hoặc entity để xem trước nội dung của nó và đảm bảo rằng dữ liệu chính xác sẽ được tải vào Power BI model.
Chọn các table mà bạn muốn đưa vào Power BI. Lựa chọn này sẽ kích hoạt các nút Load và Transform Data.
- Load – Tự động tải dữ liệu của bạn vào Power BI model ở trạng thái hiện tại.
- Transform Data – Mở dữ liệu của bạn trong Microsoft Power Query, nơi bạn có thể thực hiện các hành động như xóa các hàng hoặc cột không cần thiết, nhóm dữ liệu của bạn, xóa lỗi và nhiều tác vụ khác.
Import dữ liệu bằng cách viết truy vấn SQL
Một cách khác bạn có thể nhập dữ liệu là viết một truy vấn SQL để chỉ định các bảng và cột mà bạn cần.
Để viết truy vấn SQL của bạn, trên cửa sổ SQL Server database, hãy nhập tên server và databse, sau đó chọn mũi tên bên cạnh Advanced options để mở rộng phần này và xem các tùy chọn của bạn. Trong hộp SQL statement, hãy viết câu lệnh truy vấn của bạn, sau đó chọn OK. Trong ví dụ này, bạn sẽ sử dụng câu lệnh Select SQL để tải các cột ID, NAME và SALESAMOUNT From SALES table.
Thay đổi cài đặt cho nguồn dữ liệu
Sau khi kết nối với nguồn dữ liệu và tải dữ liệu vào Power BI Desktop, bạn có thể quay lại và thay đổi cài đặt kết nối của mình bất kỳ lúc nào. Hành động này thường được yêu cầu do chính sách bảo mật trong doanh nghiệp, ví dụ: mật khẩu cần được cập nhật 90 ngày một lần. Bạn có thể thay đổi nguồn dữ liệu, quyền chỉnh sửa hoặc xóa quyền.
Trên tab Home, chọn Transform data, sau đó chọn tùy chọn Data source settings.
Từ danh sách nguồn dữ liệu, chọn nguồn dữ liệu mà bạn muốn cập nhật. Sau đó, bạn có thể nhấp chuột phải vào nguồn dữ liệu đó để xem các tùy chọn cập nhật có sẵn hoặc sử dụng các nút tùy chọn cập nhật ở phía dưới bên trái của cửa sổ. Chọn tùy chọn cập nhật mà bạn cần, thay đổi settings theo yêu cầu, và sau đó áp dụng các thay đổi của bạn.
Bạn cũng có thể thay đổi cài đặt cho nguồn dữ liệu của mình từ trong Power Query. Chọn bảng, sau đó chọn tùy chọn Data source settings trên tab Home. Ngoài ra, bạn có thể đi tới bảng Query Settings ở phía bên phải của màn hình và chọn biểu tượng cài đặt bên cạnh Source (hoặc nhấn 2 lần vào Select Source). Trong cửa sổ hiển thị, cập nhật chi tiết máy server và database, sau đó chọn OK.
Sau khi bạn đã thực hiện các thay đổi, hãy chọn Close and Apply để áp dụng những thay đổi đó cho việc cài đặt nguồn dữ liệu của bạn.
Viết câu lệnh SQL
Như đã đề cập trước đây, bạn có thể nhập dữ liệu vào Power BI model của mình bằng cách sử dụng truy vấn SQL. SQL là viết tắt của Structured Query Language và là một ngôn ngữ lập trình chuẩn hóa được sử dụng để quản lý cơ sở dữ liệu quan hệ và thực hiện các hoạt động quản lý dữ liệu khác nhau.
Hãy xem xét tình huống trong đó cơ sở dữ liệu của bạn có một bảng lớn bao gồm dữ liệu bán hàng trong vài năm. Dữ liệu bán hàng từ năm 2009 không liên quan đến report mà bạn đang tạo. Khi đó sử dụng SQL statement rất có lợi vì nó cho phép bạn chỉ tải dữ liệu bạn cần bằng cách chỉ định đúng các cột và hàng chính xác trong câu lệnh và sau đó import chúng vào model của bạn. Bạn cũng có thể nối các bảng khác nhau, chạy các phép tính cụ thể, tạo các câu lệnh logic và lọc dữ liệu trong truy vấn SQL của mình.
Ví dụ sau đây cho thấy một truy vấn đơn giản trong đó ID, NAME và SALESAMOUNT được chọn từ bảng SALES.
Truy vấn SQL bắt đầu bằng câu lệnh Select, cho phép bạn chọn các trường cụ thể mà bạn muốn lấy từ cơ sở dữ liệu của mình. Trong ví dụ này, bạn muốn tải các cột ID, NAME và SALESAMOUNT. Ví dụ sau là truy vấn SQL đầy đủ:
SELECT
ID
, NAME
, SALESAMOUNT
FROM
SALES
Khi sử dụng truy vấn SQL để lấy dữ liệu, hãy cố gắng tránh sử dụng ký tự đại diện (*) trong truy vấn của bạn. Nếu bạn sử dụng ký tự đại diện (*) trong câu lệnh SELECT, bạn sẽ import tất cả các cột mà bạn không cần từ bảng đã chỉ định.
Ví dụ sau đây cho thấy truy vấn sử dụng ký tự đại diện.
SELECT *
FROM
SALES
Ký tự đại diện (*) sẽ nhập tất cả các cột trong bảng Sales. Mình không khuyên bạn nên dùng cách này bởi vì nó sẽ dẫn đến dữ liệu dư thừa trong mô hình dữ liệu của bạn, điều này sẽ gây ra các vấn đề về hiệu suất và yêu cầu các bước bổ sung để chuẩn hóa dữ liệu phục vụ cho báo cáo.
Tất cả các truy vấn cũng nên có mệnh đề WHERE. Mệnh đề này sẽ lọc các hàng để lọc bản ghi mà bạn muốn. Trong ví dụ này, nếu bạn muốn nhận dữ liệu bán hàng gần đây sau ngày 1 tháng 1 năm 2020, hãy thêm mệnh đề WHERE. Truy vấn sẽ giống như ví dụ sau.
SELECT
ID
, NAME
, SALESAMOUNT
FROM SALES
WHERE
OrderDate> = '1/1/2020'
Tốt nhất là bạn nên tránh làm điều này trực tiếp trong Power BI. Thay vào đó, hãy xem xét việc viết một truy vấn trong chế độ xem (view). View là một đối tượng trong cơ sở dữ liệu quan hệ, tương tự như một bảng. Chế độ này có các hàng và cột, và có thể chứa hầu hết mọi toán tử trong ngôn ngữ SQL. Nếu Power BI sử dụng view, thì khi truy xuất dữ liệu, nó sẽ tham gia vào quá trình query folding, một tính năng của Power Query. Query folding sẽ được giải thích ở phần sau, nhưng tóm lại, Power Query sẽ tối ưu hóa việc lấy dữ liệu theo đúng cách dữ liệu được sử dụng sau này.