Big Query là gì?
Mục lục
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