Chuyển đến nội dung chính

Câu hỏi phỏng vấn BigQuery hàng đầu và câu trả lời cho năm 2026

Chinh phục buổi phỏng vấn BigQuery với hướng dẫn về các câu hỏi trọng yếu và câu trả lời từ chuyên gia.
Đã cập nhật 16 thg 4, 2026  · 14 phút đọc

Công nghệ kho dữ liệu gần đây đã được hợp nhất để trở nên dễ mở rộng hơn và ít tốn kém hơn nhờ sự phổ biến của các dịch vụ đám mây. Một trong những giải pháp phổ biến nhất là kho dữ liệu BigQuery của Google Cloud Platform. 

Khảo sát Stack Overflow 2024 xác nhận mức độ phổ biến gia tăng của công cụ này, với tỷ lệ chấp nhận đạt 24,1% trong số người dùng đám mây trên toàn thế giới. Nhu cầu về chuyên môn BigQuery đã tăng đáng kể trong nhiều ngành, khiến việc nắm vững các nguyên lý cơ bản của nó trở thành yêu cầu nghề nghiệp bắt buộc đối với các chuyên gia dữ liệu.

Trong bài viết này, bạn sẽ tìm thấy tuyển tập một số câu hỏi về BigQuery thường được hỏi trong các buổi phỏng vấn tuyển dụng để giúp bạn sẵn sàng. Nếu bạn mới bắt đầu tìm hiểu về BigQuery, tôi khuyên bạn nên xem trước hướng dẫn về Data Warehousing trên GCP sau đây. 

Câu hỏi phỏng vấn BigQuery cơ bản

Biết các kiến thức cơ bản về BigQuery trước khi xử lý các chủ đề phức tạp là điều thiết yếu. Những câu hỏi này đánh giá mức độ nắm bắt các khái niệm cốt lõi, kiến trúc và chức năng của bạn. Nếu bạn chưa thể trả lời các câu hỏi sau, tôi khuyến khích bạn bắt đầu từ đầu bằng cách xem Hướng dẫn BigQuery cho người mới bắt đầu và đăng ký khóa học BigQuery nhập môn của chúng tôi.

BigQuery là gì và khác gì so với cơ sở dữ liệu truyền thống?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về các kho dữ liệu hiện đại và ưu điểm của chúng so với cơ sở dữ liệu truyền thống.

BigQuery là kho dữ liệu hoàn toàn do Google Cloud quản lý, không máy chủ (serverless), được thiết kế cho phân tích dữ liệu quy mô lớn. Nó cho phép chạy các truy vấn SQL tốc độ cao trên tập dữ liệu khổng lồ mà không cần quản lý hạ tầng, giúp người dùng tập trung vào khai thác insight thay vì bảo trì. 

Không giống các cơ sở dữ liệu quan hệ on-premises truyền thống, vốn thường lưu trữ theo hàng và bị giới hạn bởi phần cứng, BigQuery là hệ thống lưu trữ dạng cột gốc đám mây, cung cấp khả năng mở rộng gần như vô hạn. Kiến trúc phân tán và mô hình tính phí theo mức sử dụng giúp BigQuery xử lý khối lượng công việc phân tích hiệu quả hơn so với các cơ sở dữ liệu thông thường.

Dataset trong BigQuery là gì?

Vì sao hỏi câu này: Để kiểm tra kiến thức của bạn về cách tổ chức dữ liệu và cấu trúc của BigQuery.

Trong BigQuery, dataset được định nghĩa là vùng chứa cấp cao nhất dùng để tổ chức bảng, view và các tài nguyên khác. Điều này mở đường cho kiểm soát truy cập và định vị dữ liệu. Bằng cách cấu trúc dữ liệu hiệu quả, dataset giúp cải thiện hiệu năng truy vấn và quản lý truy cập, trở thành thành phần nền tảng trong kiến trúc của BigQuery.

Làm thế nào để nạp dữ liệu vào BigQuery?

Vì sao hỏi câu này: Để kiểm tra hiểu biết của bạn về các phương thức đưa dữ liệu vào.

BigQuery cung cấp nhiều phương thức nạp dữ liệu dành cho các mục đích khác nhau. 

  • Chế độ tải theo lô (batch load) thường dùng để tải một tập dữ liệu lịch sử lớn vào BigQuery bằng giao diện web BigQuery, công cụ dòng lệnh bq hoặc các lệnh gọi API. 
  • Nạp dữ liệu theo luồng (streaming ingestion) cho phép xử lý dữ liệu theo thời gian thực bằng cách đẩy từng bản ghi hoặc các lô nhỏ qua BigQuery Streaming API. 
  • Dịch vụ chuyển dữ liệu của BigQuery có thể đơn giản hóa việc nhập dữ liệu theo lịch từ Google Cloud Storage, Google Ads và các nguồn SaaS. 

Với các quy trình ETL nâng cao, Google Cloud Dataflow và các công cụ pipeline khác giúp di chuyển dữ liệu liền mạch vào BigQuery. Lựa chọn phương thức nạp phù hợp phụ thuộc vào khối lượng dữ liệu, độ trễ và nhu cầu xử lý.

BigQuery hỗ trợ những kiểu dữ liệu nào?

Vì sao hỏi câu này: Để kiểm tra hiểu biết của bạn về khả năng xử lý dữ liệu của BigQuery.

BigQuery hỗ trợ nhiều kiểu dữ liệu, phân loại như sau:

  • Kiểu cơ bản: BOOL, INT64, FLOAT64, STRING, BYTES, DATE, DATETIME, TIME, TIMESTAMP
  • Kiểu phức tạp: ARRAY, STRUCT, JSON
  • Kiểu chuyên biệt: NUMERIC, BIGNUMERIC, INTERVAL, GEOGRAPHY, RANGE

Mỗi kiểu dữ liệu có kích thước lưu trữ logic được xác định, ảnh hưởng đến hiệu năng truy vấn và chi phí. Ví dụ, lưu trữ STRING phụ thuộc vào độ dài mã hóa UTF-8, trong khi ARRAY<INT64> cần 8 byte mỗi phần tử. Hiểu rõ các kiểu này giúp tối ưu truy vấn và quản lý chi phí hiệu quả.

Bạn có thể xem tất cả các kiểu dữ liệu được hỗ trợ trong bảng sau. 

Các kiểu dữ liệu BigQuery

Các kiểu dữ liệu BigQuery. Hình ảnh từ Tài liệu Google Cloud. 

Những lợi thế chính khi sử dụng BigQuery là gì?

Vì sao hỏi câu này: Để đảm bảo bạn hiểu các điểm mạnh chính khi sử dụng BigQuery làm Data Warehouse. 

Sử dụng dịch vụ BigQuery mang lại năm lợi ích chính so với các giải pháp tự quản lý truyền thống:

  • Khả năng mở rộng: Mọi đầu tư phần cứng ban đầu được hoãn lại. Cho phép dễ dàng tăng giảm tài nguyên tùy theo nhu cầu kinh doanh.
  • Tính linh hoạt: Hạ tầng có thể điều chỉnh theo nhu cầu doanh nghiệp.
  • Mức độ bảo mật cao: Sao lưu tự động và khôi phục sau thảm họa là tính năng mặc định của các giải pháp đám mây như GCP. 
  • Hiệu quả chi phí: Mô hình trả theo mức sử dụng cho phép khách hàng chỉ trả tiền cho dịch vụ họ dùng.
  • Chia sẻ dữ liệu và cộng tác: Việc dùng dịch vụ dựa trên đám mây thúc đẩy chia sẻ dữ liệu và cộng tác.

Các lợi thế của BigQuery

Ưu điểm của BigQuery. Hình minh họa của Tác giả.

Câu hỏi phỏng vấn kỹ thuật về BigQuery

Khi bạn đã nắm vững các nguyên lý cơ bản của BigQuery, đã đến lúc đi sâu vào các khía cạnh kỹ thuật hơn mà nhà tuyển dụng thường đánh giá. 

Các câu hỏi này vượt ra ngoài định nghĩa cơ bản và kiểm tra khả năng tối ưu hiệu năng, quản lý chi phí, cũng như làm việc với các tính năng nâng cao như phân vùng, phân cụm và bảo mật.

Phân vùng (partitioning) trong BigQuery là gì và nó cải thiện hiệu năng như thế nào?

Vì sao hỏi câu này: Để đánh giá kiến thức của bạn về kỹ thuật tổ chức dữ liệu và tác động của nó đến hiệu quả truy vấn.

Phân vùng trong BigQuery là phương pháp chia nhỏ các bảng lớn thành những phần dễ quản lý hơn dựa trên một tiêu chí nào đó như ngày, thời điểm nạp dữ liệu hoặc giá trị số nguyên. Nhờ phân đoạn dữ liệu thành các phân vùng, BigQuery có thể hạn chế lượng dữ liệu phải quét trong quá trình truy vấn, qua đó tăng tốc hiệu năng và giảm đáng kể chi phí. 

Ví dụ, một bảng phân vùng lưu dữ liệu giao dịch hằng ngày cho phép truy vấn lọc theo khoảng ngày cụ thể một cách hiệu quả thay vì quét toàn bộ tập dữ liệu. Điều này đặc biệt hữu ích cho phân tích chuỗi thời gian và các khối công việc phân tích quy mô lớn.

Phân cụm (clustering) trong BigQuery là gì và nó cải thiện hiệu năng truy vấn như thế nào?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về các chiến lược tổ chức dữ liệu nhằm tối ưu hiệu quả truy vấn và chi phí.

Phân cụm trong BigQuery là việc tổ chức dữ liệu bên trong các phân vùng dựa trên giá trị của một hoặc nhiều cột được chỉ định. Bằng cách nhóm các hàng có liên quan thông qua phân cụm, BigQuery giảm lượng dữ liệu phải quét, từ đó cải thiện hiệu năng truy vấn và giảm chi phí xử lý tổng thể. 

Cách tối ưu này đặc biệt hiệu quả khi lọc, sắp xếp hoặc tổng hợp theo các cột được phân cụm, nơi công cụ truy vấn có thể bỏ qua hoàn toàn dữ liệu không liên quan thay vì quét toàn bộ phân vùng. Phân cụm hoạt động tốt nhất khi kết hợp với phân vùng và mang lại lợi ích hiệu năng lớn hơn khi làm việc với các tập dữ liệu lớn. 

Sự khác nhau giữa bảng (table) và view trong BigQuery là gì?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về các cấu trúc dữ liệu của BigQuery và trường hợp sử dụng của chúng.

Trong BigQuery, bảng là đơn vị lưu trữ có cấu trúc chứa dữ liệu thực, còn view là bảng ảo truy xuất dữ liệu động dựa trên một truy vấn SQL được định nghĩa sẵn. Khác biệt chính là view không tự chứa dữ liệu mà phục vụ như khối xây dựng để viết các truy vấn lớn hoặc áp dụng quy tắc bảo mật quanh quyền truy cập dữ liệu bằng cách cung cấp quyền vào một tập con dữ liệu mà không cần nhân bản. View cũng cải thiện thời gian thực thi truy vấn bằng cách cho phép người dùng truy cập lại dữ liệu mà không phải nạp lại hay tổ chức lại bảng, khiến chúng trở nên hữu ích cho phân tích, trừu tượng hóa dữ liệu và thực thi bảo mật. 

Tóm lại: 

  • Một bảng là đơn vị lưu trữ có cấu trúc chứa dữ liệu thực
  • Một view là bảng ảo truy xuất dữ liệu động dựa trên truy vấn SQL định nghĩa sẵn mà không lưu dữ liệu

BigQuery xử lý bảo mật dữ liệu như thế nào?

Vì sao hỏi câu này: Để kiểm tra kiến thức của bạn về bảo mật BigQuery kết hợp với việc bảo vệ dữ liệu nhạy cảm.

BigQuery áp dụng cách tiếp cận nhiều lớp đối với bảo mật dữ liệu, bắt đầu bằng một mô hình bảo mật nhằm bảo vệ dữ liệu ở mọi giai đoạn của vòng đời dữ liệu. 

  • Dữ liệu được mã hóa khi lưu trữ bằng khóa mã hóa do Google quản lý theo mặc định, hoặc bằng khóa do khách hàng quản lý nếu muốn kiểm soát quản trị. 
  • Dữ liệu được mã hóa khi truyền qua HTTPS/TLS và trong quá trình truyền giữa máy khách và BigQuery. 
  • Identity and Access Management (IAM) cho phép kiểm soát truy cập chi tiết bằng cách cung cấp vai trò và phân quyền cho người dùng và tài khoản dịch vụ, đảm bảo chỉ các bên được ủy quyền mới có thể truy cập hoặc thay đổi dữ liệu. 
  • Ghi nhật ký kiểm toán nhằm theo dõi hoạt động của người dùng và hệ thống, cung cấp dấu vết phục vụ giám sát và tuân thủ. 

Các tính năng bảo mật tích hợp này giúp tổ chức duy trì tính bảo mật, toàn vẹn và tuân thủ quy định cho dữ liệu.

BigQuery Data Transfer Service là gì và nó đơn giản hóa việc nạp dữ liệu như thế nào?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về tự động hóa di chuyển và tích hợp dữ liệu trong BigQuery.

BigQuery Data Transfer Service (BQ DTS) tự động hóa và lập lịch nhập dữ liệu từ nhiều nguồn bên ngoài vào BigQuery, loại bỏ nhu cầu về các quy trình ETL thủ công. Nó tích hợp gốc với các dịch vụ Google như Google Ads, YouTube và Google Cloud Storage, cũng như các ứng dụng SaaS của bên thứ ba. 

Bằng cách cho phép chuyển dữ liệu tự động theo lịch, BQ DTS đảm bảo dữ liệu luôn được cập nhật phục vụ phân tích mà không cần can thiệp của người dùng. Dịch vụ này đặc biệt hữu ích cho các tổ chức quản lý quy trình nạp dữ liệu định kỳ ở quy mô lớn, nâng cao hiệu quả và giảm chi phí vận hành.

Trường lồng nhau (nested) và trường lặp (repeated) trong BigQuery là gì và vì sao chúng hữu ích?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về hỗ trợ dữ liệu bán cấu trúc của BigQuery và ưu điểm so với mô hình quan hệ truyền thống.

BigQuery cho phép sử dụng trường lồng nhau và trường lặp, giúp lưu trữ và truy vấn dữ liệu dạng phân cấp hoặc mảng hiệu quả hơn. Trường lồng nhau dùng kiểu dữ liệu STRUCT, cho phép một cột chứa các trường con tương tự đối tượng JSON. 

Trường lặp hoạt động như ARRAY, cho phép một cột lưu nhiều giá trị. Các cấu trúc này giúp loại bỏ nhu cầu JOIN phức tạp, cải thiện hiệu năng truy vấn và khiến BigQuery đặc biệt phù hợp để xử lý dữ liệu bán cấu trúc như log, luồng sự kiện và các tập dữ liệu tương tự NoSQL.

Bạn có thể lập lịch và tự động hóa các job trong BigQuery như thế nào?

Vì sao hỏi câu này: Để đánh giá kiến thức của bạn về tự động hóa thực thi truy vấn và quản lý luồng công việc trong BigQuery.

BigQuery cung cấp nhiều phương thức để lập lịch và tự động hóa các job, đảm bảo các tác vụ định kỳ chạy mà không cần can thiệp thủ công. 

  • Scheduled queries cho phép người dùng định nghĩa các truy vấn chạy định kỳ trực tiếp qua giao diện web BigQuery hoặc API. 
  • Cloud Scheduler cung cấp dịch vụ quản lý hoàn toàn tương tự cron để kích hoạt truy vấn theo các khoảng thời gian xác định trước.
  • Với tự động hóa theo sự kiện, Cloud Functions có thể thực thi các job BigQuery để phản hồi các trigger từ những dịch vụ Google Cloud khác. 

Các công cụ tự động hóa này giúp hợp lý hóa pipeline dữ liệu, giảm khối lượng công việc thủ công và đảm bảo xử lý dữ liệu kịp thời cho phân tích và báo cáo.

Big Query xử lý phân vùng và phân cụm dữ liệu như thế nào?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về các chiến lược tổ chức dữ liệu trong BigQuery và tác động của chúng đến hiệu năng truy vấn và hiệu quả chi phí. 

Phân vùng tách các bảng lớn thành những phần nhỏ hơn, cải thiện hiệu năng truy vấn bằng cách chỉ quét dữ liệu liên quan.

  • Theo thời gian: Theo DATE, TIMESTAMP, DATETIME (ví dụ: phân vùng sales_date hằng ngày).

  • Theo khoảng số nguyên: Theo giá trị INTEGER (ví dụ: khoảng user_id).

  • Theo thời điểm nạp dữ liệu: Theo timestamp nạp dữ liệu (_PARTITIONDATE).

Phù hợp nhất cho dữ liệu chuỗi thời gian và giảm chi phí truy vấn khi lọc theo ngày hoặc các khoảng số.

Phân cụm sắp xếp dữ liệu trong bảng hoặc trong từng phân vùng theo các cột được chọn, từ đó tăng tốc truy vấn.

Phù hợp nhất khi lọc và tổng hợp theo các trường thường xuyên được truy vấn như region hoặc user_id.

Phân cụm và phân vùng BigQuery

Ví dụ về phân cụm và phân vùng bảng. Hình ảnh bởi Google Cloud

Câu hỏi phỏng vấn về kiến trúc BigQuery

Kiến trúc của Google BigQuery được thiết kế như thế nào và điều gì khiến nó khác biệt?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về kiến trúc không máy chủ (serverless) của BigQuery và cách nó khác với các kho dữ liệu truyền thống.

BigQuery có kiến trúc serverless, được quản lý hoàn toàn, tách rời lưu trữ và tính toán, cho phép chúng mở rộng độc lập theo nhu cầu. Không giống các kho dữ liệu đám mây truyền thống hay hệ thống MPP (xử lý song song khối lượng lớn) on-premises, sự tách biệt này mang lại tính linh hoạt, hiệu quả chi phí và tính sẵn sàng cao mà không yêu cầu người dùng quản lý hạ tầng. Công cụ tính toán của BigQuery được vận hành bởi Dremel, một cụm đa thuê (multi-tenant) thực thi truy vấn SQL hiệu quả, trong khi dữ liệu được lưu trên Colossus, hệ thống lưu trữ phân tán toàn cầu của Google. Các thành phần này giao tiếp qua Jupiter, mạng ở quy mô petabit của Google, đảm bảo truyền dữ liệu siêu nhanh. Toàn bộ hệ thống được điều phối bởi Borg, hệ thống quản lý cụm nội bộ của Google và là tiền thân của Kubernetes. Kiến trúc này cho phép người dùng chạy phân tích hiệu năng cao, khả năng mở rộng lớn trên các tập dữ liệu khổng lồ mà không phải bận tâm quản lý hạ tầng.

Kiến trúc BigQuery

Kiến trúc Big Query. Hình ảnh bởi Google.

BigQuery tách biệt lưu trữ và tính toán như thế nào, và lợi ích là gì?

Vì sao hỏi câu này: Câu hỏi này đánh giá hiểu biết của bạn về kiến trúc BigQuery, cụ thể là cách mô hình tách rời lưu trữ và tính toán cải thiện khả năng mở rộng, hiệu quả chi phí và hiệu năng.

BigQuery tuân theo kiến trúc serverless, được quản lý hoàn toàn, trong đó lưu trữ và tính toán hoàn toàn tách biệt:

  • Lưu trữ: Dữ liệu được lưu trên Colossus, hệ thống lưu trữ phân tán toàn cầu của Google. Điều này đảm bảo tính sẵn sàng cao, độ bền và khả năng mở rộng gần như vô hạn mà không yêu cầu người dùng quản lý hạ tầng.
  • Tính toán: Việc thực thi truy vấn được xử lý bởi Dremel, một công cụ truy vấn phân tán phân bổ tài nguyên tính toán (slot) linh hoạt theo nhu cầu tải công việc.

Lợi ích chính của việc tách lưu trữ - tính toán:

  • Mở rộng độc lập: Có thể mở rộng lưu trữ mà không ảnh hưởng đến tính toán và ngược lại.
  • Hiệu quả chi phí: Chỉ trả tiền cho dữ liệu được quét trong truy vấn, tránh chi phí tính toán không cần thiết.
  • Hiệu năng tối ưu: Truy vấn chạy nhanh hơn vì lưu trữ không trở thành nút thắt cổ chai cho tính toán.
  • Lưu trữ đa vùng: Dữ liệu có thể được lưu ở nhiều vị trí khác nhau mà không ảnh hưởng tốc độ truy vấn.

Thiết kế này cho phép BigQuery xử lý các truy vấn ở quy mô petabyte hiệu quả trong khi vẫn giữ chi phí thấp, trở thành lựa chọn lý tưởng cho phân tích trên đám mây.

Tính linh hoạt kiến trúc này đặc biệt quan trọng khi ngành đang chuyển trọng tâm sang sức mạnh tính toán khổng lồ. Như được đề cập trong podcast DataFramed về xu hướng dữ liệu năm 2025:

Chắc chắn có một canh bạc mà tất cả các ông lớn đều đặt cược. Họ đang xây dựng nhiều năng lực tính toán hơn, và vì vậy họ sẽ mở rộng quy mô thông qua việc tăng cường tính toán trong năm tới. Và rồi câu hỏi là, ừ, liệu có nhiều dữ liệu hơn không? Và đây là chỗ trở nên tinh tế hơn. Tôi nghĩ đó là một phổ liên tục. Không phải trắng đen rạch ròi.

Jonathan CornelissenCo-founder & CEO of DataCamp

Dremel là gì và nó giúp BigQuery truy vấn nhanh như thế nào?

Vì sao hỏi câu này: Để đánh giá kiến thức của bạn về Dremel, động cơ truy vấn nền tảng của BigQuery, và cách mô hình thực thi dạng cây, theo cột của nó cho phép phân tích dữ liệu hiệu năng cao.

Dremel là công cụ thực thi truy vấn phân tán cung cấp sức mạnh cho BigQuery. Không giống các cơ sở dữ liệu truyền thống sử dụng xử lý theo hàng, Dremel áp dụng định dạng lưu trữ theo cột và mô hình thực thi truy vấn dạng cây để tối ưu tốc độ và hiệu quả.

Dremel tăng tốc truy vấn bằng cách:

  • Lưu trữ theo cột: Thay vì đọc toàn bộ hàng, Dremel chỉ quét các cột cần thiết, giảm lượng dữ liệu phải xử lý.
  • Thực thi dạng cây: Truy vấn được chia thành các mảnh và thực thi song song trên hàng nghìn nút. Kết quả được tổng hợp theo cấu trúc cây phân cấp, giảm thiểu độ trễ.
  • Phân bổ tài nguyên không máy chủ: Dremel gán slot tính toán cho truy vấn một cách linh hoạt theo độ phức tạp, đảm bảo sử dụng tài nguyên hiệu quả.

Lợi ích chính của Dremel:

  • Truy vấn cực nhanh trên các tập dữ liệu quy mô petabyte.
  • Xử lý tiết kiệm chi phí bằng cách chỉ quét các cột liên quan.
  • Tự động song song hóa cho khối công việc lớn mà không cần tinh chỉnh thủ công.

Bạn có thể tìm hiểu thêm về Dremel trong tài liệu chính thức của Google.

Phi chuẩn hóa (denormalization) hoạt động như thế nào trong BigQuery và khi nào nên dùng?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về chiến lược mô hình dữ liệu và tác động của chúng đến hiệu năng truy vấn trong các cơ sở dữ liệu phân tích.

Phi chuẩn hóa trong BigQuery cố ý đưa vào tính dư thừa bằng cách gộp bảng và nhân bản dữ liệu để tối ưu hiệu năng truy vấn. Không giống chuẩn hóa, vốn giảm thiểu dư thừa bằng các bảng nhỏ có quan hệ, phi chuẩn hóa giảm nhu cầu JOIN phức tạp, dẫn đến thời gian đọc nhanh hơn. Cách tiếp cận này đặc biệt hữu ích trong kho dữ liệu và phân tích, nơi thao tác đọc nhiều hơn ghi. Tuy nhiên, phi chuẩn hóa làm tăng nhu cầu lưu trữ, vì vậy BigQuery khuyến nghị dùng trường lồng nhau và trường lặp để cấu trúc dữ liệu phi chuẩn hóa hiệu quả trong khi tối thiểu hóa chi phí lưu trữ.

Chiến lược chuẩn hóa trong BigQuery

So sánh các chiến lược chuẩn hóa dữ liệu khác nhau. Hình ảnh bởi Google Cloud

Câu hỏi chuyên biệt về SQL

Khi bạn đã nắm chắc kiến trúc và kỹ thuật tối ưu của BigQuery, lĩnh vực quan trọng tiếp theo là thành thạo SQL. SQL là xương sống khi làm việc với BigQuery, và nhà tuyển dụng thường kiểm tra khả năng viết, tối ưu và xử lý lỗi truy vấn của bạn. Để chuẩn bị tốt hơn, tôi khuyến khích bạn đăng ký các khóa học SQL của DataCamp.

Bạn thực hiện phép JOIN trong BigQuery như thế nào?

Vì sao hỏi câu này: Để đánh giá khả năng của bạn trong việc kết hợp dữ liệu từ nhiều bảng bằng các phép JOIN trong SQL.

BigQuery hỗ trợ nhiều loại JOIN để kết hợp dữ liệu từ nhiều bảng dựa trên một cột chung. Ví dụ, để lấy thông tin sản phẩm kèm dữ liệu bán hàng, bạn có thể dùng INNER JOIN giữa BẢNG SALES và BẢNG PRODUCT theo Product_Id:

SELECT 
    s.Id AS Sales_Id, 
    p.Product, 
    p.Price, 
    s.Purchase_date
FROM sales_table s
JOIN product_table p 
    ON s.Product_Id = p.Id;

Để có thêm chi tiết như ngày giao hàng, bạn có thể JOIN với BẢNG DELIVERY:

SELECT 
    s.Id AS Sales_Id, 
    p.Product, 
    p.Price, 
    s.Purchase_date, 
    d.Deliver_date
FROM sales_table s
JOIN product_table p ON s.Product_Id = p.Id
JOIN delivery_table d ON s.Id = d.Sales_Id;

Viết truy vấn SQL để chọn 10 sản phẩm đắt nhất.

Vì sao hỏi câu này: Để đánh giá khả năng truy xuất và sắp xếp dữ liệu hiệu quả.

Để tìm 10 sản phẩm đắt nhất, dùng ORDER BY để sắp xếp giá giảm dần và LIMIT để giới hạn kết quả:

SELECT 
    Product, 
    Price 
FROM product_table
ORDER BY Price DESC
LIMIT 10;

Viết truy vấn SQL để tính số lượng bán trung bình mỗi tháng.

Vì sao hỏi câu này: Để đánh giá khả năng thực hiện tổng hợp theo thời gian.

Để tính số lượng bán trung bình mỗi tháng, dùng hàm EXTRACT để nhóm theo tháng và COUNT để đếm số lượt bán mỗi tháng:

SELECT 
    EXTRACT(MONTH FROM Purchase_date) AS Month, 
    COUNT(Id) AS Total_Sales, 
    AVG(COUNT(Id)) OVER () AS Average_Sales
FROM sales_table
GROUP BY Month;

Viết truy vấn SQL để tìm tổng số lần giao hàng theo sản phẩm.

Vì sao hỏi câu này: Để đánh giá khả năng tổng hợp dữ liệu bằng GROUP BYCOUNT.

Để đếm số lần giao cho mỗi sản phẩm:

SELECT 
    p.Product, 
    COUNT(d.Id) AS Total_Deliveries
FROM delivery_table d
JOIN product_table p 
    ON d.Product_Id = p.Id
GROUP BY p.Product;

Viết truy vấn SQL để tìm tổng số lần giao hàng cho mỗi sản phẩm.

Vì sao hỏi câu này: Để đánh giá khả năng lọc dữ liệu theo thời gian.

Để lấy bản ghi bán hàng trong 30 ngày qua:

SELECT * 
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY);

Viết truy vấn SQL để đếm số sản phẩm duy nhất được bán trong tuần qua.

Để đếm số sản phẩm khác nhau đã bán trong 7 ngày qua:

SELECT COUNT(DISTINCT Product_Id) AS Unique_Products_Sold
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY);

Viết truy vấn SQL để nhóm dữ liệu bán theo sản phẩm và tính doanh thu tổng cho mỗi sản phẩm.

Vì sao hỏi câu này: Để kiểm tra khả năng dùng GROUP BY và tổng hợp doanh số.

Để tính tổng doanh thu theo sản phẩm:

SELECT 
    p.Product, 
    SUM(p.Price) AS Total_Revenue
FROM sales_table s
JOIN product_table p 
    ON s.Product_Id = p.Id
GROUP BY p.Product;

Viết truy vấn SQL để tính phần trăm doanh số đóng góp bởi mỗi sản phẩm.

Vì sao hỏi câu này: Để đánh giá khả năng tính phần trăm bằng SQL.

Để xác định phần trăm doanh số theo sản phẩm:

SELECT 
    p.Product, 
    SUM(p.Price) AS Product_Sales,
    (SUM(p.Price) / (SELECT SUM(Price) FROM product_table)) * 100 AS Sales_Percentage
FROM sales_table s
JOIN product_table p 
    ON s.Product_Id = p.Id
GROUP BY p.Product;

Viết truy vấn SQL để xếp hạng sản phẩm dựa trên tổng doanh số.

Vì sao hỏi câu này: Để đánh giá khả năng dùng hàm cửa sổ để xếp hạng.

Để xếp hạng sản phẩm dựa trên tổng doanh số:

SELECT 
    p.Product, 
    SUM(p.Price) AS Total_Sales, 
    RANK() OVER (ORDER BY SUM(p.Price) DESC) AS Sales_Rank
FROM sales_table s
JOIN product_table p 
    ON s.Product_Id = p.Id
GROUP BY p.Product;

Viết truy vấn SQL để tính thời gian giao hàng trung bình cho mỗi sản phẩm.

Vì sao hỏi câu này: Để đánh giá khả năng làm việc với chênh lệch ngày trong SQL.

Để tính thời gian giao hàng trung bình theo sản phẩm:

SELECT 
    p.Product, 
    AVG(DATE_DIFF(d.Deliver_date, s.Purchase_date, DAY)) AS Avg_Delivery_Time
FROM sales_table s
JOIN delivery_table d 
    ON s.Id = d.Sales_Id
JOIN product_table p 
    ON s.Product_Id = p.Id
GROUP BY p.Product;

Câu hỏi nâng cao và theo tình huống

Vượt ra ngoài kiến thức nền tảng và kỹ năng SQL, khả năng giải quyết vấn đề trong thực tế là điều then chốt khi làm việc với BigQuery ở quy mô lớn. 

Các câu hỏi nâng cao thường tập trung vào xử lý tập dữ liệu lớn, tối ưu hiệu năng, quản lý pipeline dữ liệu và xử lý các thách thức phổ biến trong môi trường sản xuất.

Bạn có thể mô tả kinh nghiệm triển khai pipeline dữ liệu trong BigQuery không?

Vì sao hỏi câu này: Để đánh giá kiến thức thực tế của bạn về xây dựng, quản lý và tối ưu pipeline dữ liệu trong BigQuery, bao gồm nạp, chuyển đổi, điều phối và giám sát.

Nhà phỏng vấn muốn biết hiểu biết thực hành của bạn về thiết kế và triển khai pipeline dữ liệu trong BigQuery. Bạn nên đề cập:

  • Nạp dữ liệu: Các phương thức sử dụng (BigQuery Data Transfer Service, Cloud Storage, streaming ingestion).
  • Chuyển đổi dữ liệu: Sử dụng chuyển đổi dựa trên SQL, scheduled queries, hoặc các công cụ như Dataflow và dbt.
  • Điều phối: Cách bạn quản lý luồng công việc pipeline bằng Cloud Composer (Apache Airflow), Cloud Functions hoặc Cloud Scheduler.
  • Giám sát và tối ưu: Cách bạn theo dõi hiệu năng pipeline, gỡ lỗi và tối ưu chi phí truy vấn.

Một câu trả lời mạnh nên bao gồm các ví dụ thực tế về những thách thức bạn đã đối mặt và cách bạn giải quyết, như xử lý tập dữ liệu lớn, tối ưu hiệu năng truy vấn hoặc đảm bảo toàn vẹn dữ liệu trong pipeline sản xuất.

Một số tài nguyên hữu ích để triển khai dự án như vậy: 

Làm thế nào bạn có thể loại bỏ bản ghi trùng lặp từ một cột trong bảng BigQuery lớn mà vẫn giữ nguyên tên bảng?

Vì sao hỏi câu này: Để đánh giá khả năng xử lý dữ liệu trùng lặp hiệu quả trong BigQuery mà không thay đổi cấu trúc bảng.

Khi làm việc với bảng chứa hàng triệu hàng và giá trị trùng trong một cột cụ thể, cách tốt nhất là dùng hàm cửa sổ ROW_NUMBER() để xác định và chỉ giữ lần xuất hiện đầu tiên của mỗi nhóm trùng, loại bỏ phần còn lại. 

Bạn có thể thực hiện bằng cách ghi đè bảng với phiên bản đã khử trùng lặp bằng lệnh CREATE OR REPLACE TABLE:

CREATE OR REPLACE TABLE tableX AS 
SELECT * EXCEPT(row_number)
FROM (
    SELECT *, 
           ROW_NUMBER() OVER (PARTITION BY troubleColumn ORDER BY someOtherColumn) AS row_number 
    FROM tableX
) 
WHERE row_number = 1;

Cách thức hoạt động:

  • ROW_NUMBER() gán số thứ tự duy nhất cho mỗi bản ghi trong cùng giá trị troubleColumn, đảm bảo chỉ một bản ghi trong mỗi nhóm trùng được giữ lại.

  • Mệnh đề PARTITION BY troubleColumn nhóm các hàng theo giá trị trùng của cột đó.

  • Mệnh đề ORDER BY someOtherColumn (ví dụ: Purchase_date) đảm bảo giữ lại bản ghi cụ thể.

  • Truy vấn bên ngoài chỉ lọc lần xuất hiện đầu tiên (row_number = 1), hiệu quả loại bỏ trùng lặp.

  • Câu lệnh CREATE OR REPLACE TABLE đảm bảo bảng giữ nguyên tên trong khi được thay bằng dữ liệu đã làm sạch.

Cách tiếp cận này loại bỏ trùng lặp hiệu quả mà không cần tạo bảng mới hoặc ảnh hưởng đến cấu trúc tổng thể của bảng.

Bạn dùng BigQuery cho trực quan hóa và báo cáo dữ liệu như thế nào, và công cụ phổ biến nhất là gì?

Vì sao hỏi câu này: Để đánh giá khả năng tích hợp BigQuery với các công cụ trực quan hóa và truyền tải insight hiệu quả qua báo cáo.

BigQuery đóng vai trò backend mạnh mẽ cho trực quan hóa và báo cáo dữ liệu, cho phép kết nối trực tiếp với các công cụ như Google Looker Studio (trước đây là Data Studio), Tableau và Power BI. 

Các công cụ này cho phép truy vấn dữ liệu theo thời gian thực và tạo dashboard, biểu đồ, báo cáo tùy chỉnh mà không cần xuất dữ liệu thủ công. Các kỹ thuật chính cho trực quan hóa gồm:

  • Tổng hợp và chuyển đổi dữ liệu trong BigQuery bằng SQL trước khi trực quan hóa.
  • Xây dựng dashboard tương tác với bộ lọc động và khả năng drill-down.
  • Tối ưu truy vấn và materialized view để cải thiện hiệu năng dashboard.

Một câu trả lời mạnh nên nêu bật các trường hợp sử dụng thực tế, như: 

  • Theo dõi KPI kinh doanh
  • Giám sát xu hướng
  • Tạo báo cáo tự động

Để tự triển khai dự án Trực quan hóa Dữ liệu, bạn có thể theo dõi các dự án chuyên biệt của DataCamp về Phân tích thói quen sạc xe điệnKhám phá mạng lưới giao thông London bằng BigQuery.

Câu hỏi về thực hành tốt nhất và tối ưu hóa BigQuery

Làm việc hiệu quả với BigQuery không chỉ là viết truy vấn SQL—mà còn cần tối ưu hiệu năng, quản lý chi phí và áp dụng các thực hành tốt nhất để đảm bảo hoạt động dữ liệu trơn tru. Vì BigQuery hoạt động theo mô hình trả tiền theo mức sử dụng, việc hiểu cách giảm thiểu dữ liệu quét, tận dụng phân vùng và phân cụm, cũng như tối ưu thực thi truy vấn là rất quan trọng cho cả hiệu năng và chi phí.

Những thực hành tốt nhất để quản lý chi phí BigQuery hiệu quả là gì?

Vì sao hỏi câu này: Để đánh giá khả năng tối ưu chi phí khi làm việc với tập dữ liệu lớn trong BigQuery.

Để quản lý chi phí BigQuery hiệu quả, bạn nên:

  • Tối ưu truy vấn để chỉ quét các cột và hàng cần thiết, tránh SELECT *.

  • Sử dụng bảng phân vùng và phân cụm để giảm thiểu dữ liệu quét và cải thiện hiệu năng truy vấn.

  • Tận dụng công cụ giám sát chi phí như ngân sách, cảnh báo và chính sách kiểm soát chi phí trong Google Cloud.

  • Tận dụng đặt chỗ slot (slot reservations) để có mức giá dự đoán được và tiết kiệm chi phí cho khối lượng công việc ổn định.

  • Thường xuyên dọn dẹp bảng và phân vùng không dùng để tối ưu chi phí lưu trữ.

Một chiến lược quản lý chi phí có cấu trúc tốt giúp kiểm soát chi tiêu trong khi vẫn duy trì thực thi truy vấn hiệu quả.

Những thực hành tốt nhất để tối ưu hiệu năng truy vấn trong BigQuery là gì?

Vì sao hỏi câu này: Để đánh giá khả năng viết truy vấn hiệu quả nhằm giảm thời gian thực thi và chi phí.

Để tối ưu hiệu năng truy vấn trong BigQuery:

  • Thiết kế lược đồ hiệu quả, chọn kiểu dữ liệu phù hợp và tránh chuẩn hóa quá mức.

  • Sử dụng phân vùng và phân cụm để giảm lượng dữ liệu phải quét.

  • Tránh SELECT *, chỉ lấy các cột cần thiết.

  • Tối ưu các phép JOIN và GROUP BY, đảm bảo tuân theo thực hành tốt cho truy vấn quy mô lớn.

  • Tận dụng cache và materialized view để lưu trữ kết quả tiền tính toán và cải thiện hiệu năng.

  • Dùng các hàm tổng hợp xấp xỉ như APPROX_COUNT_DISTINCT khi không yêu cầu độ chính xác tuyệt đối.

Tuân theo các thực hành này giúp tăng tốc truy vấn, giảm chi phí tính toán và nâng cao hiệu quả tổng thể.

BigQuery slot là gì và chúng ảnh hưởng đến hiệu năng truy vấn như thế nào?

Vì sao hỏi câu này: Để đánh giá hiểu biết của bạn về tài nguyên tính toán của BigQuery và ảnh hưởng của chúng đến thực thi truy vấn.

Slot trong BigQuery là đơn vị năng lực tính toán dùng để xử lý truy vấn SQL. Chúng được phân bổ linh hoạt theo nhu cầu tải công việc, đảm bảo sử dụng tài nguyên hiệu quả. Tổ chức có thể chọn giữa:

  • Slot theo nhu cầu (on-demand), tự động mở rộng theo nhu cầu truy vấn.
  • Slot đặt trước (reserved), mang lại hiệu năng và chi phí dự đoán hơn cho khối lượng công việc ổn định.

Quản lý slot hiệu quả có thể giảm thời gian thực thi truy vấn, tối ưu phân bổ tài nguyên và hạ thấp chi phí tổng thể.

Bạn có thể giám sát và tối ưu chi phí BigQuery hiệu quả như thế nào?

Vì sao hỏi câu này: Để đánh giá khả năng theo dõi và kiểm soát chi tiêu BigQuery.

Để giám sát và tối ưu chi phí trong BigQuery:

  • Phân tích thực thi truy vấn bằng lịch sử truy vấn và kế hoạch EXPLAIN để xác định thao tác tốn kém.
  • Bật nhật ký kiểm toán để theo dõi mẫu sử dụng và phát hiện truy vấn kém hiệu quả.
  • Thiết lập ngân sách và cảnh báo chi phí để ngăn chi tiêu ngoài ý muốn.
  • Tối ưu sử dụng slot, tận dụng slot đặt trước cho khối lượng công việc ổn định để giảm chi phí.
  • Thường xuyên dọn dẹp bảng và phân vùng không dùng để tránh phí lưu trữ không cần thiết.

Bằng cách áp dụng các chiến lược này, bạn có thể đảm bảo xử lý dữ liệu hiệu quả về chi phí trong khi vẫn duy trì hiệu năng và khả năng mở rộng.

Mẹo bổ sung để vượt qua phỏng vấn BigQuery

Dưới đây là một số mẹo cuối cùng để bạn tỏa sáng trong buổi phỏng vấn sắp tới về BigQuery.

Nắm vững nền tảng. Hiểu kiến trúc BigQuery, gồm thiết kế serverless, tách rời lưu trữ - tính toán và công cụ truy vấn Dremel với khóa học BigQuery nhập môn của chúng tôi. Tìm hiểu dataset, bảng, view và materialized view để quản lý và cấu trúc dữ liệu hiệu quả. Hướng dẫn về SQL materialized view của chúng tôi sẽ hữu ích. 

Mài giũa kỹ năng SQL & tối ưu truy vấn. Luyện tập các hàm SQL đặc thù BigQuery (ARRAY, STRUCT, hàm cửa sổ) cho các truy vấn phức tạp với bài code-along Bắt đầu với BigQuery. Tối ưu truy vấn với phân vùng, phân cụm và các hàm xấp xỉ để giảm chi phí và cải thiện hiệu năng theo tài liệu chính thức của Google.

Tích lũy kinh nghiệm thực tế. Làm các dự án thực tế sử dụng tập dữ liệu công khai và xây dựng báo cáo với Looker Studio, Tableau hoặc Power BI qua các dự án của DataCamp. Thử Phân tích thói quen sạc xe điệnKhám phá mạng lưới giao thông London đều là cách tuyệt vời để cải thiện kỹ năng SQL của bạn.


Josep Ferrer's photo
Author
Josep Ferrer
LinkedIn
Twitter

Josep là một Nhà khoa học dữ liệu tự do chuyên về các dự án châu Âu, có chuyên môn về lưu trữ dữ liệu, xử lý, phân tích nâng cao và kể chuyện bằng dữ liệu tạo tác động. 

Với vai trò giảng dạy, anh phụ trách môn Dữ liệu lớn trong chương trình Thạc sĩ tại Đại học Navarra và chia sẻ góc nhìn qua các bài viết trên các nền tảng như Medium, KDNuggets và DataCamp. Josep cũng viết về Dữ liệu và Công nghệ trong bản tin Databites (databites.tech). 

Anh có bằng Cử nhân Vật lý Kỹ thuật từ Đại học Bách khoa Catalonia và bằng Thạc sĩ Hệ thống Tương tác Thông minh từ Đại học Pompeu Fabra.

FAQs

BigQuery là gì và khác gì so với cơ sở dữ liệu truyền thống?

BigQuery là kho dữ liệu hoàn toàn do Google Cloud quản lý, không máy chủ, được thiết kế cho phân tích dữ liệu quy mô lớn. Không giống cơ sở dữ liệu quan hệ on-premises truyền thống, vốn thường lưu theo hàng và bị giới hạn phần cứng, BigQuery là hệ thống lưu trữ dạng cột gốc đám mây, cung cấp khả năng mở rộng gần như vô hạn. Kiến trúc phân tán và mô hình tính phí theo mức sử dụng giúp BigQuery xử lý khối lượng công việc phân tích hiệu quả hơn so với cơ sở dữ liệu thông thường.

Những lợi thế chính khi sử dụng BigQuery là gì?

BigQuery mang lại năm lợi thế chính: (1) Khả năng mở rộng – tự động tăng giảm tài nguyên, (2) Tính linh hoạt – hạ tầng thích ứng với nhu cầu kinh doanh, (3) Bảo mật cao – mã hóa và kiểm soát truy cập tích hợp, (4) Hiệu quả chi phí – tính phí theo mức sử dụng, và (5) Chia sẻ dữ liệu và cộng tác – giải pháp đám mây cho phép truy cập liền mạch giữa các nhóm.

Phân vùng trong BigQuery là gì và nó cải thiện hiệu năng như thế nào?

Phân vùng trong BigQuery chia các bảng lớn thành những phần nhỏ, dễ quản lý dựa trên tiêu chí như ngày, thời điểm nạp hoặc giá trị số. Điều này cải thiện hiệu năng truy vấn bằng cách chỉ quét các phân vùng liên quan thay vì toàn bộ bảng, giảm chi phí và thời gian thực thi. Đặc biệt hữu ích cho phân tích chuỗi thời gian và tập dữ liệu lớn.

Sự khác nhau giữa bảng và view trong BigQuery là gì?

Bảng lưu trữ dữ liệu thực, trong khi view là bảng ảo truy xuất dữ liệu động dựa trên một truy vấn SQL định nghĩa sẵn. View giúp đơn giản hóa truy vấn phức tạp, thực thi kiểm soát truy cập dữ liệu và cải thiện thời gian thực thi truy vấn mà không nhân bản dữ liệu.

BigQuery xử lý bảo mật dữ liệu như thế nào?

BigQuery áp dụng nhiều lớp bảo mật: (1) Mã hóa dữ liệu khi lưu trữ và khi truyền, (2) Identity and Access Management (IAM) cho kiểm soát truy cập chi tiết, (3) Ghi nhật ký kiểm toán để giám sát sử dụng và tuân thủ, và (4) Khóa mã hóa do khách hàng quản lý để tăng cường kiểm soát bảo mật.

Chủ đề

Học cùng DataCamp

Courses

Hiểu về Điện toán Đám mây

2 giờ
224.4K
Một giới thiệu cơ bản về điện toán đám mây, bao gồm các khái niệm chính, thuật ngữ và công cụ.
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow