Kết nối Qlik với nguồn dữ liệu (P1)

Dữ liệu nghiệp vụ (business data) thường được lưu trữ ở nhiều hệ thống khác nhau trong doanh nghiệp. Ở dạng đơn giản nhất, dữ liệu có thể được lưu trong các file trên máy tính cá nhân, hoặc file server của công ty. Ở mức độ tổ chức cao hơn, doanh nghiệp có thể sử dụng cơ sở dữ liệu (database), các platform cộng tác nhóm như Sharepoint, các hệ thống quản trị như SAP hoặc phần mềm kế toán. Dữ liệu cũng có thể được lấy từ các nguồn ngoài mạng máy tính của tổ chức hoặc từ Internet, ví dụ như thống kê dân số, tỷ giá ngoại tệ hoặc thu thập từ mạng xã hội.

Là một platform chuyên về phân tích và mô hình hóa dữ liệu, Qlik cung cấp các công cụ kết nối dữ liệu (data connector) cho phép kết nốt với nhiều nguồn dữ liệu (data source) khác nhau. Bản thân Qlik Engine có thể đọc dữ liệu từ các data file hoặc web file mà không cần thêm cài đặt nào khác. Tuy nhiên, với những nguồn dữ liệu phức tạp hơn như database hay SAP, người sử dụng cần lựa chọn data connector thích hợp để đọc dữ liệu từ các nguồn này. Bài viết sau đây giới thiệu khái quát các data connector mà Qlik hiện đang cung cấp.

Data connector được tích hợp sẵn trong Qlik Engine

Qlik Engine có khả năng đọc trực tiếp các data file với điều kiện user đang chạy Qlik Engine có đủ quyền (permission) đọc file. Đối với QlikView hoặc Qlik Sense Desktop, user chạy Qlik Engine là user mà bạn đang sử dụng để log in vào Windows. Đối với QlikView Server hoặc Qlik Sense Enterprise, user này chính là service account đang chạy các service QlikView Server (QVS) hoặc Qlik Sense Engine.

Qlik Engine tìm đến data file bằng đường dẫn (path) đối với file được lưu trên máy tính/ file server, hoặc URL đối với file nằm trên web server. Lưu ý với URL, web file connection của Qlik Engine chỉ có thể xử lý được các URL tĩnh. Nếu bạn mở URL này trong một web browser và thấy cần phải đăng nhập, hoặc được redirect đến 1 URL khác trước khi dữ liệu hiển thị trên browser, bạn cần nghĩ đến một connector khác hơn là web file connection mặc định.

Các định dạng file mà Qlik Engine có thể đọc được bao gồm:

  • Text file: Tất cả các file dưới dạng plain text lưu trữ dữ liệu dạng bảng, bao gồm các cột dữ liệu ngăn cách nhau bởi các ký tự nhận diện cột (delimiter) như tab, dấu phẩy, chấm phẩy, v.v. CSV là ví dụ tiêu biểu của text file.
  • Web file: Bảng dữ lưu trên web server ở định dạng HTML, XML, CSV hoặc JSON
  • Excel file. Ở phiên bản mới nhất, QlikView và Qlik Sense đều hỗ trợ định dạng xls lẫn xlsx
  • QVD (QlikView Data) – file lưu trữ các bảng dữ liệu export từ QlikView hoặc Qlik Sense. Đây là định dạng được tối ưu hóa tốc độ đọc dữ liệu trong Qlik script trong khi vẫn đảm bảo không gian lưu trữ tối thiểu trên đĩa cứng. QVD file thường được sử dụng làm lớp trung gian trong quá trình ETL với Qlik platform, mình sẽ trình bày trong một bài viết khác

Demo: Xây dựng ứng dụng kiểm tra tỷ giá ngoại tệ với Webfile connection trong Qlik Sense

Đễ hiểu rõ hơn về file connection trong Qlik, chúng ta sẽ thử xây dựng một ứng dụng kiểm tra tỷ giá ngoại tệ sử dụng bảng tỷ giá online do ngân hàng Vietcombank cung cấp. Ứng dụng này sẽ sắp xếp các ngoại tệ theo mức chênh lệch tỷ giá giữa mua và bán từ lớn đến nhỏ.

Trước hết, Vietcombank cung cấp bảng tỷ giá online tại địa chỉ vietcombank.com.vn/ExchangeRates . Lưu ý ở góc trên bên phải của bảng tỷ giá có nút “XML”. Click vào nút này sẽ mở ra trang sau: https://www.vietcombank.com.vn/ExchangeRates/ExrateXML.aspx . URL này chính là bảng tỷ giá mà bạn xem ở trang trước dưới dạng XML, không yêu cầu đăng nhập. Vì vậy, sử dụng một webfile connection đơn giản là có thể tải bảng tỷ giá này về ứng dụng của bạn.

Các bước xây dựng app như sau:

  1. Tạo một app mới trong Qlik Sense Desktop
  2. Trong app mới tạo, mở Data Load Editor. Chọn Create new connection > Web file
  3. Trong webfile connector dialog, nhập các tham số sau:
  4. Trên connection vừa tạo, nhấn Select data. Trong cửa sổ Select data from…, để nguyên các tham số mặc định. Chọn Insert script.
  5. Một đoạn script với 2 câu lệnh LOAD đã được tự động chèn vào reload script của bạn. Nhấn Load data phía trên Create connetion để thực thi reload script
  6. Mở app overview, tạo một sheet mới. Trong sheet này, tạo một bar chart với các tham số sau:
    • Title: ‘Chênh lệch tỷ giá tại thời điểm ‘ & Only(DateTime)
    • Dimension:
      • Filed: CurrencyName
      • Label: Tên ngoại tệ
    • Measure:
      • Expression: Max(Sell-Transfer, Sell – Buy)
      • Label: Chênh lệch tỷ giá mua bán

Kết quả cuối cùng là một bar chart tương tự như sau. Biểu đồ này cho ta thấy tại thời điểm ngày 18/9/2018 lúc 2:37 chiều, đồng Kuwait Dinar có chênh lệch tỷ giá mua bán lớn nhất, tiếp theo là các đồng France Thụy Sỹ và bảng Anh. Các tỷ giá này sẽ được cập nhật lại theo dữ liệu hiện thời của Vietcombank khi ta reload data của ứng dụng.

Bài viết trên đây trình bày tổng quan về kết nối dữ liệu trong Qlik và giới thiệu các data connector được tích hợp sẵn trong Qlik Engine. Các connector ngoài Qlik Engine sẽ được thảo luận chi tiết trong phần 2 của bài viết.