BigQuery là gì? Vì sao ai cũng dùng

BigQuery là gì? Vì sao ai cũng dùng
Người người nhà nhà BigQuery

Ngày càng có nhiều công việc yêu cầu kinh nghiệm BigQuery, nhưng bạn có thật sự hiểu “kinh nghiệm BigQuery” ở đây là gì không ? Mình sẽ giải thích cặn kẽ trong bài viết này.

BigQuery là gì ?

Nếu nói về định nghĩa “theo sách giáo khoa” thì BQ chính là

BigQuery là một giải pháp lưu kho dữ liệu(data warehousing ) của Google Cloud Platform cho query dữ liệu lớn. BigQuery hoạt động dưới dạng Platform as a Service trên hạ tầng của Google.

Cop đâu đó trên mạng

Rào cản mình thường thấy khi mọi người nói về “BigQuery” đó chính là họ không giải thích BigQuery theo góc nhìn của từng vai trò trong công ty. BigQuery là một công cụ, một giải pháp chung cho nhiều vấn đề mà khi rơi vào tay những người khác nhau trong một công ty, nó sẽ phục vụ một mục đích khác nhau.

Vì vậy mình sẽ giải thích BigQuery theo từng vai trò bạn đảm nhiệm để bạn có thể hiểu rõ hơn.

BigQuery – Khi bạn là Data Analyst

Thường khi bạn là Data Analyst, bạn có thể hiểu BigQuery theo một cách đơn giản như sau. BigQuery chính là một công cụ query SQL, giống như bất kì công cụ nào khác.

Có một điểm cần lưu ý là, BigQuery hỗ trợ 2 loại cú pháp chính là Standard SQL và Legacy SQL. Trong đó cú pháp của Standard SQL hoàn toàn tương thích với ANSI SQL ( Một chuẩn thông dụng, MySQL, Postgre,… đều tương thích với ANSI). Như vậy, chúng ta có thể tạm kết luận bạn hoàn toàn tự tin sử dụng BigQuery nếu bạn có kinh nghiệm sử dụng bất kì loại SQL nào thông dụng.

BigQuery hay là… SQL?

Vậy, khi bạn đọc được 1 tin tuyển dụng yêu cầu “3 năm kinh nghiệm BigQuery”, đó chính là họ yêu cầu bạn có 3 năm kinh nghiệm khai thác dữ liệu bằng SQL, và nếu từng dùng BigQuery thì tốt. Bạn đừng nhầm lẫn rằng bạn phải dùng BigQuery 3 năm, thực chất là phải viết SQL 3 năm thì đúng hơn.

BigQuery – Khi bạn là Data Engineer

Khi bạn là một Data Engineer, thì trước tiên bạn phải hiểu BigQuery theo các 1 Analyst hiểu phía trên đã, hãy quay lên đọc lại.

Okay, nếu bạn đã đọc rồi thì mình sẽ tiếp tục giải thích BigQuery trên phương diện 1 Data Engineer.

BigQuery ngoài việc là một công cụ để query SQL, còn là một giải pháp toàn diện về Data Warehousing và Big Data. BigQuery thường được gọi là MPP (Massively Parallel Processing). MPP nói nôm na là một công cụ có thể chứa nhiều data và query nhiều data, và tất cả đều “song song” (parallel) cho nên nó có thể đạt tốc độ rất nhanh. BigQuery có thể scale tới số lượng nodes cực lớn nên dù bạn có hàng Terabyte dữ liệu, query của bạn không bao giờ tốn quá 1 phút.

Một số đặc tính ưu việt của BigQuery

Serverless

Đỡ đau đầu

BigQuery là một giải pháp serverless, tức là bạn sẽ không tốn bất kì chi phí nào nếu không sử dụng. Không giống như MySQL/ Postgre/ Redshift…. bạn phải trả tiền server theo giờ. BigQuery hoàn toàn là một “gói” giải pháp tách biệt giữa query dữ liệu và lưu trữ dữ liệu. Bạn chỉ cần trả số tiền tương ứng với số dữ liệu bạn query, nếu bạn chỉ lưu dữ liệu và thỉnh thoảng mới query thì chi phí còn thấp hơn nữa.

Ngoài ra vì là serverless, bạn sẽ không cần phải lo lắng về uptime, không phải maintain, không lo sập server nếu nhiều người query.

Đa dạng dữ liệu đầu vào/ra

Không giống như các giải pháp khác, bạn hoàn toàn không cần phải config để đạt được tốc độ cao trên BigQuery. Từ CSV cho tới parquet file cho đến json, các loại dữ liệu đầu vào được hỗ trợ trên BigQuery cực kì đa dạng. Và tốc độ luôn nhanh không tưởng.

Ví dụ nếu bạn dùng Athena của AWS hoặc Presto, việc không partition dữ liệu, không chuyển sang định dạng columnar (parquet) có thể làm query bạn kéo dài tới hàng phút. Đối với BigQuery tất cả điều đó không thành vấn đề.

Việc xuất dữ liệu từ BigQuery ra Google Cloud Storage cũng rất đơn giản, và BigQuery có thể làm rất nhanh chóng mà không tốn chi phí nào.

Phương thức kết nối đa dạng

BigQuery hiện tại hỗ trợ:

  • Web UI: bạn có thể query trực tiếp trên trình duyệt
  • Rest API: từ giao tiếp đến truyền dữ liệu đều được, từ bulk đến realtime streaming
  • Clients : Hỗ trợ bigquery client lên tới 7 ngôn ngữ, theo như mình nhớ thì có Python, NodeJS, Golang,…
  • Và còn nhiều phương thức khác mà Google đang phát triển thêm.

Vậy điều tuyệt vời ở đây là gì? Tất cả được google thực hiện, bạn chẳng cần phải cài đặt plugin hay phần hỗ trợ để Database của bạn hỗ trợ được rest api, hỗ trợ streaming,… tất cả đều được google thực hiện, và càng ngày càng có nhiều tính năng mở rộng.

Sự phổ biến

BigQuery rất phổ biến, điều này dẫn tới việc đa số hệ thống analytics, marketing đều có khả năng tích hợp với BigQuery. Ví dụ nếu bạn muốn query dữ liệu từ project Google Analytics của công ty, bạn chỉ cần tích hợp vào BigQuery và ngay lập tức bạn có thể export được dữ liệu ngay. Ngoài ra các hệ thống dữ liệu như Segment io, Kafka,… đều có plugin hoặc tính năng kết nối trực tiếp tới BigQuery, dẫn đến việc truyền dữ liệu vào BigQuery rất thuận tiện.

Tất cả trong một

Vì các điều trên BigQuery rất phù hợp với các công ty nhỏ và trung có lượng dữ liệu chưa quá đồ sộ. Khi sử dụng BigQuery, không cần tốn quá nhiều công sức để xây dựng, maintain bạn đã có một hệ thống dữ liệu tương đối mạnh. Điều này khác với một hệ thống bạn tự xây dựng, nơi bạn phải lo maintain từ server đến storage nếu bạn đi theo hướng decouple, hoặc phải config cấu hình rất cụ thể nếu bạn đi theo hướng monolith.

BigQuery – Khi bạn là CEO !!

I am the CEO

😂 Đây có lẽ chắc là phần hấp dẫn nhất vì mình không phải là CEO, nhưng mình cũng có một số góc nhìn mà mình tin rằng các CEO sẽ quan tâm khi cân nhắc cho công ty sử dụng BigQuery. Theo mình nghĩ CEO sẽ quan tâm tới 2 điều về BigQuery.

Được – Công ty tiết kiệm được rất nhiều tiền !

Trong ngắn và trung hạn bạn sẽ tiết kiệm được rất nhiều tiền nếu công ty của bạn là một công ty từ nhỏ tới vừa vì BigQuery miễn phí query dữ liệu lên đến 1TB/ 1 tháng và chi phí lưu trữ dưới 1TB hầu như miễn phí.

Nếu công ty bạn chưa có hệ thống dữ liệu, thì với một mô hình cũ bạn cần tốn tiền thuê vài data dev, chạy 1 cái server,… nói chung là rất nhiều tiền. Còn với BigQuery, nhiều khi… chỉ cần thuê 1 bạn Data Analyst, nối vào Google Analytics sẵn có của công ty, thế là dùng được. Mà đôi khi công ty cũng chỉ cần có thể ở thời điểm hiện tại.

Mất – Sự phụ thuộc

Nếu bạn có dự định công ty sẽ trở thành Amazon/ Shopee/… trong vòng 5 năm nữa thì bạn phải cân nhắc điều bạn mất khi sử dụng BigQuery đó chính là sự phụ thuộc. Khi phát triển tới quy mô rất lớn với lượng dữ liệu hàng ngày lên tới từng TB và hàng trăm triệu điểm dữ liệu thì… bạn phải tốn khá nhiều tiền cho BigQuery, dù cho khi bạn dùng ở quy mô nhỏ thì gần như BigQuery miễn phí.

Với quy mô cực lớn, mỗi thay đổi của Google đến BigQuery cũng sẽ thay đổi đến hoạt động của công ty bạn. Việc có một kì vọng phù hợp cho BigQuery và biết khi nào cần tự xây dựng một hệ thống Big Data riêng cho công ty rất quan trọng. Vì BigQuery chỉ phục vụ được một số mục đích mà Google định ra, còn hệ thống riêng của bạn thì sẽ phục vụ được những nhu cầu rất cụ thể của công ty bạn.

Support Tuan | Analytic

Trả lời