Việc làm

10/09 · Hồ Chí Minh · Tại văn phòng

Advertising Monetization Specialist (Fresher/Junior)

Athena Studio · Data Analyst

Xem mô tả & ứng tuyển trên ITviecMô tả công việc, lương và ứng tuyển nằm ở ITviec.

10 câu hỏi có thể gặp khi phỏng vấn

Chọn theo kỹ năng và cấp của tin (Data Engineer & Data Analyst, SQL & Database). Gợi ý trả lời do Drama Công Ty biên soạn để bạn ôn nhanh, không phải đề của công ty.

  1. 01Một job Spark chạy rất chậm, vài task chạy mãi không xong. Bạn chẩn đoán và xử lý thế nào?Data Engineer & Data Analyst

    Gợi ý trả lời

    Vài task chậm hơn hẳn phần còn lại thường là data skew: một khoá chiếm phần lớn dữ liệu, dồn vào một partition.

    Chẩn đoán qua Spark UI: xem stage chậm, so sánh thời gian và dung lượng shuffle giữa các task, có spill ra đĩa không.

    Cách xử lý:

    • Bật Adaptive Query Execution (mặc định bật ở Spark 3.2+) để tự tách partition bị lệch.
    • Broadcast bảng nhỏ khi join để tránh shuffle.
    • Thêm salt vào khoá nóng rồi gộp lại.
    • Lọc dữ liệu và chọn cột sớm, tránh collect() về driver.
    • Điều chỉnh số partition; xử lý vấn đề quá nhiều file nhỏ.

    Người phỏng vấn muốn nghe: đo bằng Spark UI trước, không tăng tài nguyên một cách mù quáng.

    Ôn thêm câu hỏi Data Engineer & Data Analyst →
  2. 02Doanh thu hôm nay giảm 30% so với hôm qua. Bạn phân tích nguyên nhân thế nào?Data Engineer & Data Analyst

    Gợi ý trả lời

    Trước tiên kiểm tra dữ liệu có đúng không, rồi mới phân tích nghiệp vụ.

    1. Dữ liệu: pipeline có chạy đủ không, dữ liệu đến trễ, có thay đổi tracking hay định nghĩa chỉ số không.
    2. So sánh hợp lý: cùng thứ trong tuần trước, có ngày lễ, khuyến mãi hôm qua không.
    3. Phân rã chỉ số: doanh thu = số người dùng × tỷ lệ chuyển đổi × giá trị đơn trung bình; xem thành phần nào giảm.
    4. Cắt lát: theo kênh, nền tảng, khu vực, sản phẩm, phiên bản app để khoanh vùng.
    5. Đối chiếu sự kiện: deploy mới, lỗi thanh toán, đối thủ, chiến dịch quảng cáo dừng.

    Người phỏng vấn muốn nghe: cách tiếp cận có cấu trúc và kết luận đi kèm đề xuất hành động.

    Ôn thêm câu hỏi Data Engineer & Data Analyst →
  3. 03Các loại JOIN trong SQL khác nhau thế nào? Khi nào kết quả JOIN bị nhân bản dòng?Data Engineer & Data Analyst · Junior

    Gợi ý trả lời

    INNER JOIN chỉ giữ dòng khớp ở cả hai bảng; LEFT JOIN giữ mọi dòng bảng trái, phía phải không khớp thì NULL; FULL OUTER JOIN giữ tất cả; CROSS JOIN ghép mọi cặp.

    Dòng bị nhân bản khi khoá join không duy nhất ở một phía (quan hệ một-nhiều hoặc nhiều-nhiều). Ví dụ join orders với payments khi một đơn có nhiều lần thanh toán, rồi SUM(order_amount) sẽ bị cộng trùng.

    • Kiểm tra độ duy nhất của khoá trước khi join.
    • Gộp (aggregate) bảng chi tiết trước rồi mới join.

    Hay sai: đặt điều kiện lọc bảng phải trong WHERE sau LEFT JOIN, vô tình biến nó thành INNER JOIN; nên đặt trong ON.

    Ôn thêm câu hỏi Data Engineer & Data Analyst →
  4. 04Chuẩn hoá (normalization) là gì? Khi nào nên denormalize?SQL & Database

    Gợi ý trả lời

    Chuẩn hoá là tách dữ liệu để mỗi thông tin chỉ lưu ở một chỗ, tránh dư thừa và sai lệch khi cập nhật.

    • 1NF: mỗi ô một giá trị nguyên tử, không lưu danh sách trong một cột.
    • 2NF: cột không khoá phụ thuộc vào toàn bộ khoá chính, không chỉ một phần.
    • 3NF: cột không khoá không phụ thuộc bắc cầu qua cột không khoá khác.

    Denormalize khi đọc nhiều hơn ghi rất nhiều và JOIN trở thành điểm nghẽn: lưu sẵn comment_count trong bảng bài viết, chép customer_name vào đơn hàng để giữ đúng tên tại thời điểm đặt, hoặc dựng bảng báo cáo riêng.

    Hay sai: denormalize mà không có cơ chế đồng bộ (trigger, job, event) nên số liệu lệch dần. Hãy nói rõ cái giá phải trả là logic ghi phức tạp hơn.

    Ôn thêm câu hỏi SQL & Database →
  5. 05Phân biệt INNER JOIN, LEFT JOIN, RIGHT JOIN và FULL OUTER JOIN. Khi nào dùng LEFT JOIN?SQL & Database · Junior

    Gợi ý trả lời

    JOIN quyết định giữ lại những dòng nào khi ghép hai bảng theo điều kiện.

    • INNER JOIN: chỉ giữ dòng khớp ở cả hai bảng.
    • LEFT JOIN: giữ mọi dòng bảng trái; bảng phải không khớp thì cột thành NULL.
    • RIGHT JOIN: ngược lại với LEFT, ít dùng vì có thể đổi chỗ bảng.
    • FULL OUTER JOIN: giữ tất cả dòng của cả hai (MySQL không hỗ trợ trực tiếp, phải UNION hai LEFT JOIN).

    Ví dụ tìm khách chưa từng đặt hàng:

    SELECT c.id, c.name
    FROM customers c
    LEFT JOIN orders o ON o.customer_id = c.id
    WHERE o.id IS NULL;
    

    Hay sai: đặt điều kiện lọc bảng phải trong WHERE (vd. WHERE o.status = 'paid') làm LEFT JOIN biến thành INNER JOIN; điều kiện đó phải để trong ON.

    Ôn thêm câu hỏi SQL & Database →
  6. 06WHERE khác HAVING thế nào? Thứ tự thực thi logic của một câu SELECT là gì?Data Engineer & Data Analyst · Junior

    Gợi ý trả lời

    WHERE lọc từng dòng trước khi gộp nhóm; HAVING lọc nhóm sau khi đã GROUP BY và tính hàm tổng hợp.

    Thứ tự logic: FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT.

    SELECT customer_id, COUNT(*) AS orders
    FROM orders
    WHERE created_at >= DATE '2026-01-01'
    GROUP BY customer_id
    HAVING COUNT(*) >= 3;
    

    Hay sai: dùng alias định nghĩa trong SELECT ngay ở WHERE (đa số hệ quản trị báo lỗi), hoặc lọc điều kiện dòng bằng HAVING làm truy vấn chậm hơn.

    Ôn thêm câu hỏi Data Engineer & Data Analyst →
  7. 07Window function là gì? Viết truy vấn lấy đơn hàng gần nhất của mỗi khách hàng.Data Engineer & Data Analyst · Junior

    Gợi ý trả lời

    Window function tính toán trên một nhóm dòng liên quan mà không gộp mất dòng như GROUP BY. Hay dùng: ROW_NUMBER, RANK, LAG/LEAD, tổng luỹ kế SUM() OVER.

    SELECT *
    FROM (
      SELECT o.*, ROW_NUMBER() OVER (
        PARTITION BY customer_id ORDER BY created_at DESC
      ) AS rn
      FROM orders o
    ) t
    WHERE rn = 1;
    
    • ROW_NUMBER cho số duy nhất; RANK cho cùng hạng khi bằng nhau và nhảy số; DENSE_RANK không nhảy số.
    • LAG để so sánh với kỳ trước, ví dụ doanh thu tháng này so với tháng trước.

    Hay sai: ORDER BY không xác định duy nhất khiến kết quả thay đổi giữa các lần chạy.

    Ôn thêm câu hỏi Data Engineer & Data Analyst →
  8. 08ETL khác ELT thế nào? Vì sao ELT phổ biến hơn với data warehouse hiện đại?Data Engineer & Data Analyst · Junior

    Gợi ý trả lời

    ETL biến đổi dữ liệu trước khi nạp vào kho; ELT nạp dữ liệu thô vào kho trước rồi biến đổi ngay trong kho bằng SQL.

    ELT phổ biến vì:

    • Warehouse/lakehouse trên cloud (BigQuery, Snowflake, Databricks) tính toán mạnh và co giãn.
    • Giữ được dữ liệu thô, khi đổi logic có thể chạy lại.
    • Biến đổi viết bằng SQL, quản lý bằng công cụ như dbt có version, test, tài liệu.

    ETL vẫn hợp khi phải loại bỏ dữ liệu nhạy cảm trước khi vào kho, hoặc nguồn quá lớn cần lọc bớt.

    Người phỏng vấn muốn nghe: tổ chức theo lớp (raw, staging, mart hoặc bronze, silver, gold).

    Ôn thêm câu hỏi Data Engineer & Data Analyst →
  9. 09WHERE và HAVING khác nhau thế nào? Thứ tự thực thi logic của một câu SELECT ra sao?SQL & Database · Junior

    Gợi ý trả lời

    WHERE lọc từng dòng trước khi gom nhóm; HAVING lọc sau GROUP BY, nên dùng được hàm tổng hợp như COUNT, SUM.

    Thứ tự logic: FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT/OFFSET.

    SELECT department_id, AVG(salary) AS avg_salary
    FROM employees
    WHERE status = 'active'
    GROUP BY department_id
    HAVING AVG(salary) > 20000000;
    
    • Vì SELECT chạy sau WHERE, bạn không dùng được alias của SELECT trong WHERE (đa số DB).
    • Điều kiện không cần hàm tổng hợp thì nên để ở WHERE để giảm số dòng phải gom nhóm.

    Người phỏng vấn muốn nghe: bạn hiểu thứ tự logic, từ đó giải thích được vì sao alias hoặc aggregate dùng sai chỗ bị lỗi.

    Ôn thêm câu hỏi SQL & Database →
  10. 10Điểm yếu của bạn là gì?Câu hỏi hành vi & văn hoá

    Gợi ý trả lời

    Chọn điểm yếu thật, không chí mạng với vị trí, và cho thấy bạn đang cải thiện.

    Cấu trúc: điểm yếu, ảnh hưởng đã gặp, việc bạn đang làm để khắc phục, tiến bộ đến nay.

    Câu mẫu: "Trước đây em hay ngại hỏi khi bị kẹt, tự loay hoay quá lâu, có lần làm trễ task. Giờ em tự đặt giới hạn: kẹt quá một hai giờ mà không có hướng thì em hỏi đồng đội, kèm những gì đã thử. Từ khi làm vậy em xong việc đúng hạn hơn và học được nhanh hơn từ người khác."

    Ví dụ khác có thể dùng: chưa quen nói trước đám đông, tiếng Anh nói chưa trôi chảy, hay ôm việc.

    Hay sai: "Điểm yếu của em là quá cầu toàn" (nghe như né câu hỏi), hoặc nêu điểm yếu là kỹ năng cốt lõi của vị trí.

    Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →

Bạn đã phỏng vấn ở Athena Studio?

Kể lại các vòng và câu hỏi đã gặp (ẩn danh) để người sau ôn đúng trọng tâm.

Chia sẻ kinh nghiệm phỏng vấn