Nguyên gốc Big Query là công cụ nội bộ của Google dùng để truy vấn một khối lượng dữ liệu khổng lồ.

 

Bên trong Big Query là cơ chế truy vận Dremel. Nguyên tắc hoạt động của Dremel là Cây thực thi, nó sẽ đọc dữ liệu từ hệ thống  file phân tán của Google. Dremel có khả năng mở rộng cao và có thể trả kết quả truy vấn trong vòng vài giay ( hay vài chục giây) tùy thuộc vào tập dữ liệu. BigQuery cung cấp tính năng cốt lõi của Dremel cho bên phát triển phần mềm thứ 3 thông qua REST API, CLI, Và WEb UI. BigQuery không chỉ có vậy.

 

Thực tế , BQ sử dụng nhiều loại công nghệ phát triển bởi Google. Một là , Borg (hệ thống quản lý cụm máy tính) để phân bổ khả năng tính toán cho các Job của Dremel . Các Job Dremel đọc dữ liệu từ  hệ thống file của Google bằng  hệ thống Jupiter( hệ thống mạng tốc độ cao của Google-  với tốc độ gửi nhận khoảng 10Gbps)

 

Với kiến trúc đặc biệt này , BQ không cần yêu cầu chỉ mục ( index) , dữ liệu được lưu ở  dạng Columnar( kiểu cột ) theo kiểu của Google : Colossus . Tất cả mỗi câu truy vấn sẽ quét toàn bộ của các table cần truy vấn.

 

Tính mở rộng ?

Trong trương hợp hệ thống bị quá tải,  nó sẽ tự động tăng thêm máy chủ ( bên dưới ) , và điều này hoàn toàn mình bạch đối với người dùng. Điều này hoàn toàn khác biệt với cơ chế scaling của RedShift (vốn dựa trên PostGre SQL  bên dưới ). Lợi điểm của No Indexes

(không chỉ mục) và  quét toàn bộ (full scan)? Cần phải nhấn mạnh ngộ nhận thông thường của  kỹ sư quản trị  Dataware House: 2 thuật ngữ nói trên không đồng nghĩa với “nhanh”.

 

Vậy tại sao Big Query có thể truy vấn nhanh đến vậy?

2 lý do :

  • Lưu trữ dưới dạng cột ( columnar storage) : dữ liệu được lưu trữ dưới dạng cột và do đó nó sẽ có tỷ lệ nén rất cao khi cần truy vấn  đồng thời tốc độ quét ( scan ) sẽ rất cao
  • Kiến trúc Cây thực thi ( tree architecture) : một cây thực thi  sẽ được sử dụng để thực thi các truy vấn đồng thời gộp các câu truy vấn trong trường hợp có  các truy vấn con

Đây là bài đầu tiên trong chuỗi các bài viết về Big Query . Nếu các bạn có câu hỏi hay  yêu cầu  gì về việc triển  khai  Big Query xin vui lòng email về info@renovacloud.com