Thử trả lời các câu hỏi Data Analyst của Google – Part 2

Đây là bài viết số 2 trong 1 chuỗi các bài để trả lời những question từ công cụ có tên là “Interview Warmup” nhằm giúp các ứng viên đang ứng tuyển vào Google chuẩn bị tốt hơn cho các vòng phỏng vấn. Trên công cụ này có 3 nhóm câu hỏi chính: Background, Situation và Technical.

Question 1: What are some common SQL queries that can be used to combine data?

Tạm dịch: Một số truy vấn SQL phổ biến có thể được sử dụng để kết hợp dữ liệu là gì?

Chia sẻ: Trong SQL có 2 cách để combine dữ liệu: Combine theo chiều dọc và combine theo chiều ngang. 

– Trong combine theo chiều dọc chúng ta sẽ có dùng 1 số phép xử lý dữ liệu như: UNION, UNION ALL, EXCEPT, INTERSECT. Điều kiện để có thể combine dữ liệu theo chiều dọc là 2 dataset phải có số cột bằng nhau và kiểu dữ liệu của từng cột phải matching với nhau. Đại ý 2 dataset phải vừa cùng chất vừa cùng lượng. Vinh hay dùng hình ảnh 2 viên gạch có chung kích thước chồng lên nhau để ẩn dụ cho phép UNION ALL.

– Trong combine theo chiều ngang thì chúng ta sử dụng các phép JOIN. Có rất nhiều các loại JOIN. Bản chất của JOIN là mapping dữ liệu dựa trên điều kiện. 2 dataset sẽ mapping với nhau theo chiều ngang theo 1 điều kiện được define ở mệnh đề ON/USING. Riêng CROSS JOIN là không có điều kiện, nghĩa là 1 dòng bất kì của dataset này sẽ map với tất cả các dòng của dataset kia. Do mapping dữ liệu theo chiều ngang nên số cột trong outcome sẽ bằng tổng số cột của 2 dataset cộng lại. Chi tiết các kiểu join Vinh đã chia sẻ trong phần 1.

Question 2: How would you describe the sort of problems you can solve with SQL to someone who doesn’t have a technical background?

Tạm dịch: Làm thế nào bạn có thể mô tả các loại vấn đề mà bạn có thể giải quyết với SQL cho một người không có nền tảng kỹ thuật?

Chia sẻ: Những câu hỏi kiểu này Vinh cũng rất thích dùng khi phỏng vấn các bạn ứng viên. Mindset ở đây là mình không được dùng ngôn ngữ của mình, mình phải dùng ngôn ngữ của người đối diện. Nếu chúng ta nói SQL có thể giúp combine, aggregate dữ liệu… là thua chắc rồi. Thay vào đó hãy xác định rõ stakeholder của mình là gì? Họ dùng ngôn ngữ gì thì mình dùng ngôn ngữ đó. Ưu tiên những câu trả lời đơn giản, dễ hiểu và pha 1 chút hài hước. 😀

Giả định stakeholder của mình là anh trưởng bộ phận bán hàng thì Vinh sẽ trả lời là: SQL có thể giúp anh ngồi ở văn phòng mà biết từng cửa hàng đang kinh doanh như thế nào? Doanh thu được bao nhiêu, bán được bao nhiêu đơn hàng mỗi ngày? Sản phẩm nào bán chạy, sản phẩm nào bán ế, sản phẩm nào cần tăng tồn kho, sản phẩm nào nên thanh lý. Ngoài ra, SQL không bao giờ biết nói dối, thông tin sai là do mấy bạn nhân viên của anh viết SQL sai thôi 😀

Question 3: Can you describe what metadata is, and why it’s important in the discussion of databases?

Tạm dịch: Bạn có thể mô tả metadata là gì và tại sao metadata lại quan trọng trong cuộc thảo luận về cơ sở dữ liệu không?

Chia sẻ: Metadata là những thông tin mô tả về dữ liệu. Nó có thể là những thông tin như tên bảng, cột, kích thước dữ liệu, kiểu biến, thông tin primary key, foreigner key, index,… Đây là những thông tin để giúp chúng ta có thể hiểu rõ hơn về hệ thống database. Phần này sẽ quan trọng hơn với các bạn Data Engineer. Từ góc độ của Data Analyst thì mình thấy các bạn cần hiểu rõ nguyên lý cấu trúc database như star schema, snowflake schema để biết các bảng liên kết với nhau như thế nào. Mình cần biết đâu là bảng dim, đâu là bảng fact, đặc tính của bảng dim và bảng fact khác nhau như thế nào? Trong mỗi bảng chúng ta cần nắm được logic log dữ liệu như thế nào? Khi nào thì một record được phát sinh. Primary key, foreigner key liên quan tới bảng đó là gì để hỗ trợ chúng ta query dữ liệu nhanh hơn. Nhiệm vụ chính của các bạn DA vẫn là QUERY dữ liệu chứ không phải xây dựng hệ thống database nên những kiến thức gì giúp bạn khai thác hệ thống database tốt thì nên học. 

Trên đây là 3 câu hỏi khá đơn giản về database. Bài đã dài, hẹn các bạn ở part 3 nhé!

Đọc PHẦN 1

Share để lưu bài viết

Leave a Reply

Your email address will not be published. Required fields are marked *