FPT Query engine sử dụng Trino là một công cụ truy vấn SQL phân tán, mã nguồn mở, được thiết kế để xử lý các truy vấn nhanh và hiệu quả trên các tập dữ liệu lớn. Trino cho phép bạn truy vấn dữ liệu từ nhiều nguồn khác nhau, bao gồm cơ sở dữ liệu quan hệ, kho dữ liệu, và các hệ thống lưu trữ dữ liệu phi quan hệ, mà không cần phải di chuyển hoặc sao chép dữ liệu.
Để tạo Query engine, người dùng thực hiện các bước sau:
Bước 1: Tại thanh menu chọn Data Platform > chọn Workspace Management > chọn Workspace name
Bước 2: Tại phần My services nhấn Create > hiển thị popup chọn New service chọn Trino > Create
Bước 3: Trong form tạo Query engine, nhập thông tin màn Basic Information:
Chú ý: Tên dịch vụ phải từ 1 đến 30 kí tự. Có thể chứa các kí tự chữ cái thường a-z hoặc chữ cái in hoa A-Z hoặc các kí tự số 0-9
Description (optional): Mô tả
Version (required): chọn version
Bước 4: Nhấn Next để chuyển sang màn nhập thông tin Node configuration
Nhập thông tin sau:
Chú ý: số Worker phải lớn hơn hoặc bằng 1 và nhỏ hơn hoặc bằng 10
Bước 5: Nhấn Next để chuyển sang màn Additional Properties
Nhập các thông tin sau:
Đây là lượng bộ nhớ tối đa mà một truy vấn có thể sử dụng trên toàn bộ cụm. Bộ nhớ người dùng được phân bổ trong quá trình thực thi cho các tác vụ trực tiếp liên quan đến, hoặc có thể kiểm soát bởi, truy vấn của người dùng. Ví dụ, bộ nhớ được sử dụng bởi các bảng băm (hash tables) được tạo trong quá trình thực thi, bộ nhớ được sử dụng trong quá trình sắp xếp, v.v. Khi lượng bộ nhớ người dùng được phân bổ cho một truy vấn trên tất cả các worker đạt đến giới hạn này, truy vấn đó sẽ bị dừng.
Chú ý: số Max memory phải lớn hơn hoặc bằng 1
Retry policy: chọn Retry policy, giá trị mặc định là NONE
NONE: Tắt chế độ thực thi chịu lỗi.
TASK: Thử lại các tác vụ (task) riêng lẻ trong một truy vấn khi xảy ra lỗi. Yêu cầu cấu hình một exchange manager.
QUERY: Thử lại toàn bộ truy vấn khi xảy ra lỗi.
Bước 6: Nhấn Next để chuyển sang màn Auth
Authentication Type:
Authentication Type = Basic
Authentication Type: OAuth2
Provider: FPT ID. Người dùng nhập thông tin sau:
Email (required): địa chỉ email FPT dùng làm tài khoản quản trị.
Provider: Google. Người dùng nhập thông tin sau:
Client ID (required): mã định danh ứng dụng (lấy ở Google Cloud → OAuth Credentials).
Client Secret (required): chuỗi bí mật đi kèm Client ID, dùng để xác thực ứng dụng.
Email (required): địa chỉ Gmail hoặc Workspace của quản trị viên khởi tạo engine.
Trước khi test kết nối, hãy bảo đảm Google Cloud đã thêm redirect URI của Query Engine vào danh sách cho phép.
Provider: Keycloak,. Người dùng nhập các thông tin sau:
Auth Provider Name (optional): Tên provider
Realm (required): là một không gian quản lý mà trong đó, tất cả người dùng, nhóm, vai trò, khách hàng (clients) và các đối tượng khác đều được quản lý và bảo mật một cách độc lập
Auth Server URL (required): là URL cơ bản của máy chủ Keycloak, được sử dụng bởi các clients để thực hiện xác thực, phải kết thúc bằng dấu “/”.
Client ID (required): một đoạn mã ID được sử dụng để xác thực client với Keycloak
Client Secret (required): mật khẩu được sử dụng để xác thực client với Keycloak
Email (required): địa chỉ email trong keycloak
Authentication Type: LDAP. Người dùng nhập các thông tin sau:
URL (required): đường dẫn LDAP, ví dụ ldap://ldap.example.com:389 hoặc ldaps://ldap.example.com:636.
Base DN (required): gốc truy vấn, chẳng hạn dc=example,dc=com.
Username (required): bind DN có quyền search (ví dụ cn=admin,dc=example,dc=com).
Password (required): mật khẩu bind DN.
User Bind Pattern (optional): mẫu DN tìm người dùng, ví dụ uid={0},ou=People,dc=example,dc=com.
Group Auth Pattern (required): mẫu DN truy vấn nhóm, ví dụ cn={0},ou=Groups,dc=example,dc=com.
Authentication Type: JWT
Người dùng nhập các thông tin sau:
Issuer (required): giá trị claim iss mà Query Engine phải khớp.
Audience (optional): giá trị claim aud (nếu hệ thống JWT sử dụng trường này).
Principal Field (required): tên claim chứa username (thường là sub hoặc email).
Public Key (required): khóa công khai định dạng PEM (dán trực tiếp hoặc tải file) để Query Engine kiểm tra chữ ký JWT.
Khuyến nghị dùng khóa RSA hoặc EC 2048 bit trở lên; tệp PEM phải bắt đầu bằng -----BEGIN PUBLIC KEY-----.
Authorization: Integrate Ranger
Enable Ranger = False (Query Engine khởi tạo theo chế độ tiêu chuẩn, không áp dụng bất kỳ policy nào từ Ranger.)
Enable Ranger = True
Tick Enable Ranger → UI tự động hiển thị nút Test connection.
Ấn Test connection để kiểm tra kết nối tới Ranger cho tích hợp. Query engine chỉ có thể khởi tạo với Authentication type là Integrate Ranger khi Test Connection thành công.
Để sự dụng Ranger cho kiểm soát xác thực, phân quyền cho Trino, người dùng cần khởi tạo dịch vụ Data Governance (Ranger) trước khi khởi tạo dịch vụ Query engine
Khởi tạo Ranger tại đây
Bước 7: Nhấn Next để chuyển sang màn Review & Create
Bước 8: Kiểm tra thông tin nhập sau đó nhấn Create để hoàn thành.
Query Engine hoàn thành khởi tạo khi Worker Status là Succeeded và Status của Trino là Healthy (~10 phút)