Google BigQuery
Google BigQuery là kho dữ liệu serverless của Google Cloud. Fresco BI đăng nhập bằng khóa service account, liệt kê dataset, bảng và view của các project bạn nhập, rồi import các bảng bạn chọn vào một Data Table.
| Tính năng | Hỗ trợ |
|---|---|
| Import | Có |
| DirectQuery | Không |
| SSL/TLS | Luôn bật (có xác minh) |
| SSH tunnel | Không |
| Cloud | Có |
| On-premises (qua Gateway) | Không |
Chuẩn bị
Phần tiêu đề “Chuẩn bị”- Một project Google Cloud có BigQuery. Project ID (không phải tên project) được dùng để tính phí.
- Quyền tạo service account, tạo khóa và cấp IAM role trong project đó (ví dụ Owner, hoặc Project IAM Admin cùng Service Account Admin).
- Project ID của các project khác có dataset mà Fresco BI cần đọc.
Bước 1: Tạo service account chỉ đọc
Phần tiêu đề “Bước 1: Tạo service account chỉ đọc”Fresco BI cần đúng ba role. Không cấp thêm gì khác.
| Role | Cấp ở đâu | Để làm gì |
|---|---|---|
| BigQuery Data Viewer | Từng dataset hoặc project cần đọc | Liệt kê dataset, bảng và đọc dữ liệu |
| BigQuery Job User | Project tính phí | Chạy query job (view, dry run ước tính chi phí) |
| BigQuery Read Session User | Project tính phí | Đọc nhanh qua Storage Read API |
Trong Google Cloud console:
- Vào IAM & Admin › Service Accounts của project tính phí, bấm Create service account. Đặt tên
fresco-reader. - Cấp cho nó BigQuery Job User và BigQuery Read Session User trên project.
- Cấp BigQuery Data Viewer: trên cả project, hoặc chỉ trên các dataset đã chọn (dataset › Sharing › Permissions). Với mỗi project dữ liệu khác, cấp ở project đó.
- Mở service account › Keys › Add key › Create new key, chọn JSON và tải file về.
Hoặc dùng gcloud CLI:
gcloud iam service-accounts create fresco-reader --project=<billing-project>SA=fresco-reader@<billing-project>.iam.gserviceaccount.comfor ROLE in roles/bigquery.jobUser roles/bigquery.readSessionUser roles/bigquery.dataViewer; do gcloud projects add-iam-policy-binding <billing-project> \ --member="serviceAccount:$SA" --role="$ROLE"donegcloud iam service-accounts keys create key.json --iam-account="$SA"Giữ bí mật file khóa và xóa bản trên máy sau khi đã dán vào Fresco BI. Khóa được lưu mã hóa và không bao giờ hiển thị lại.
Bước 2: Cho phép truy cập mạng
Phần tiêu đề “Bước 2: Cho phép truy cập mạng”Không cần mở gì. Fresco BI gọi API công khai của Google (bigquery.googleapis.com, bigquerystorage.googleapis.com, oauth2.googleapis.com) qua HTTPS ở cổng 443. BigQuery không có lựa chọn On-premises (qua Gateway) hay SSH tunnel.
Bước 3: Điền form
Phần tiêu đề “Bước 3: Điền form”| Ô | Nhập gì |
|---|---|
| Khóa service account (JSON) | Toàn bộ nội dung file khóa đã tải |
| Billing project ID | Project trả phí query job. Để trống thì dùng project_id trong khóa |
| Data project IDs | Tối đa 20 project khác cần liệt kê dataset (mỗi project một lần) |
| Location | Vị trí dataset, ví dụ US, EU hoặc asia-southeast1. Không bắt buộc |
| Maximum bytes billed (GB) | Giới hạn chi phí cho mỗi lần đọc bảng, 1–1024 (mặc định 10) |
| Dùng Storage Read API | Mặc định bật; đọc bảng nhanh hơn |
Khóa phải là khóa service account ("type": "service_account") dùng endpoint chuẩn của Google. Các loại khóa khác hoặc khóa của universe khác sẽ bị từ chối.
Fresco BI chỉ liệt kê dataset trong project tính phí và các project dữ liệu bạn nhập. Bấm Kiểm tra kết nối: bước này liệt kê một dataset trong project tính phí. Sau đó bấm Lưu. Sau khi lưu, Fresco BI hiện email của service account, không bao giờ hiện khóa.
Giới hạn chi phí hoạt động thế nào
Phần tiêu đề “Giới hạn chi phí hoạt động thế nào”- Bảng đọc qua Storage Read API: kích thước toàn bảng phải nhỏ hơn giới hạn.
- View, external table, hoặc khi tắt Storage Read API: Fresco BI chạy dry run trước và dừng nếu ước tính vượt giới hạn; query job cũng mang theo giới hạn này.
Xử lý sự cố
Phần tiêu đề “Xử lý sự cố”- Thông tin kết nối chưa hợp lệ: kiểm tra lại các ô được đánh dấu. Khóa không phải JSON hợp lệ, không phải khóa service account, hoặc private key bị hỏng; tải lại một khóa JSON mới. Lỗi này cũng hiện khi project tính phí chưa bật billing, hoặc Location không khớp với dataset.
- Máy chủ từ chối tài khoản hoặc mật khẩu. Khóa đã bị xóa hoặc vô hiệu hóa, hoặc service account đã bị xóa. Tạo khóa mới.
- Tài khoản không có quyền đọc đối tượng này. Service account thiếu BigQuery Data Viewer trên dataset đó, hoặc thiếu Job User / Read Session User trên project tính phí. Cấp thêm role như ở Bước 1.
- Không tìm thấy database hoặc đối tượng này trên máy chủ. Project không nằm trong Billing project ID hay Data project IDs, hoặc dataset, bảng đã bị xóa hay đổi tên.
- Vượt giới hạn kích thước hoặc số kết nối đồng thời. Bảng hoặc truy vấn lớn hơn Maximum bytes billed (hãy tăng lên), kết quả truy vấn quá lớn, hoặc vẫn chạm quota, rate limit của BigQuery sau ba lần thử lại (thử lại sau).
- Máy chủ không phản hồi kịp. Thường do firewall chặn im lặng hoặc sai máy chủ, cổng. Query job chạy quá lâu. Import ít cột, ít dòng hơn, hoặc thử lại khi project ít tải hơn.
- Không mở được kết nối tới máy chủ và cổng này. Kiểm tra máy chủ, cổng, và firewall đã cho phép IP của Fresco BI chưa. Không gọi được API của Google. Thử lại sau.
- Nguồn trả về kiểu dữ liệu trình kết nối chưa hỗ trợ. Cột BYTES, GEOGRAPHY, STRUCT (RECORD), RANGE và INTERVAL không import được; bỏ chúng ra khỏi Data Table.

