Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bắt đầu nghiên cứu Big Data

Hong Ong
November 06, 2017

Bắt đầu nghiên cứu Big Data

Tổ chức: TopDev.
Chủ đề: Bắt đầu nghiên cứu big data từ đâu và như thế nào.
Speaker: Ông Xuân Hồng - Data analyst @ Knorex.
Ngày: 29/07/2017.

Hong Ong

November 06, 2017
Tweet

More Decks by Hong Ong

Other Decks in Technology

Transcript

  1. Data qua từng giai đoạn: Sticky notes Ưu điểm ◦

    Ghi chú nhanh ◦ Tiện lợi ◦ Chỉ cần bút và giấy Khuyết điểm ◦ Dễ thất lạc ◦ Khó tìm kiếm
  2. Data qua từng giai đoạn: Flat files Ưu điểm ◦

    Tiết kiệm chi phí lưu trữ ◦ Dễ tìm kiếm bằng cách phân chia thư mục, đặt tên file. Khuyết điểm ◦ Ác mộng nếu quản lý không tốt. ◦ Khó tìm kiếm bên trong nội dung file. ◦ Chỉ dùng để đọc ghi dữ liệu, không phục vụ tính toán.
  3. Data qua từng giai đoạn: Spreadsheet Ưu điểm ◦ Có

    thể thực hiện tính toán. Con người không thể nào tính nhẩm hay tính tay được. ◦ Nhiều tính năng hữu ích đi kèm: biểu đồ, ghi chú, làm việc nhóm, … ◦ Dễ sử dụng và quản lý. Khuyết điểm ◦ Dữ liệu không được ràng buộc dễ bị sai sót. ◦ Thêm, xoá, sửa thông tin không nhất quán khi các file/sheet có mối liên hệ với nhau.
  4. Data qua từng giai đoạn: Relational DB Ưu điểm ◦

    Dữ liệu được mô hình hoá thành các thực thể quan hệ. ◦ Dữ liệu được chuẩn hoá và ràng buộc nên ít bị sai sót. ◦ Dễ tìm kiếm thông tin thông qua ngôn ngữ SQL. ◦ Thêm, xoá, sửa thông tin được nhất quán khi có thay đổi. Khuyết điểm ◦ Tổng hợp dữ liệu chậm khi kết bảng quan hệ. ◦ Lưu dữ liệu transaction tỉ lệ lỗi cao hoặc bị mất mát thông tin khi hệ thống bị quá tải.
  5. Data qua từng giai đoạn: OLAP Ưu điểm ◦ Xem

    nhanh dữ liệu đã tổng hợp theo nhiều chiều cùng lúc. ◦ Hỗ trợ giám sát và ra quyết định. Khuyết điểm ◦ Không real-time. ◦ Cần lên lịch cập nhật và lưu trữ thành Data warehouse.
  6. Data qua từng giai đoạn: NoSQL Ưu điểm ◦ Giải

    quyết đọc ghi dữ liệu real-time. ◦ Biểu diễn dữ liệu đa dạng hơn. ◦ Dễ dàng phân tán/replicate dữ liệu trên nhiều server. Khuyết điểm ◦ Không đảm bảo toàn vẹn dữ liệu. ◦ Dữ liệu không phản ánh được mối quan hệ. ◦ Bảo mật không cao. ◦ Hệ thống dễ bị lỗi và cần nhiều thiết lập để tối ưu.
  7. Data qua từng giai đoạn: Distributed file storage Ưu điểm

    ◦ Lưu trữ dữ liệu phân tán. ◦ Thích hợp lưu trữ các tập tin dung lượng cao như video, âm thanh, hình ảnh, … ◦ MapReduce giải quyết vấn đề tổng hợp dữ liệu trên nhiều server. Khuyết điểm ◦ Cơ chế MapReduce chậm, không đáp ứng được tổng hợp dữ liệu real-time. ◦ Sử dụng nhiều third-party đi kèm để khắc phục khuyết điểm.
  8. Nguyên lý chung Chia để trị bằng cách phân tán

    nguồn lực và tài nguyên ra nhiều server. Loại bỏ các điều kiện ràng buộc về dữ liệu, kiểm tra bảo mật để tăng tốc đọc ghi dữ liệu. Mini-batch thành các mẫu dữ liệu nhỏ hơn để tính toán nhanh hơn. Sử dụng cấu trúc Hash để indexing phục vụ tác vụ tìm kiếm nhanh.
  9. Bắt đầu như thế nào? Xác định vấn đề gặp

    phải Tìm kiếm công cụ tương ứng Test thử một thời gian Ứng dụng vào hệ thống Ghi nhận và tinh chỉnh
  10. 01 - Vấn đề lưu trữ Dữ liệu sinh ra

    nhiều trong từng giây. Ví dụ: emails, Facebook messages, photos, video clips, sensor data. Message queue: Kafka, Kinesis, SQS, RabbitMQ. Distributed file storage: Hadoop, Amazon S3, Google cloud storage. NoSQL: MongoDB, Cassandra, Redis. SQL: PostgreSQL.
  11. Case study: tracking dữ liệu ~ 1,000,000,000 transactions/ngày ~ 42,000,000

    transactions/giờ ~ 12,000 transactions/giây ~ 23MB/s ◦ pageview: 1,8TB/ngày ◦ interaction: 90GB/ngày
  12. Thách thức Lưu trữ toàn bộ dữ liệu, hạn chế

    mất mát thông tin. Lựa chọn định dạng dữ liệu phục vụ cho xử lý sau này.
  13. 02 - Vấn đề tính toán Tốc độ tổng hợp

    dữ liệu đòi hỏi cao. Real-time ở một số trường hợp. Ví dụ: tracking quảng cáo, report doanh thu theo giờ, phút, giây, mạng xã hội. Streaming: Apache Storm, Spark Streaming, Trident, Samza. Computing: Apache Spark, Flink.
  14. Tổng hợp dữ liệu MB Analytics Backend/UI Độ trễ tối

    đa: 2 giờ. Nghĩa là, vào lúc 11:00 AM, người dùng phải xem được report của 9:00 AM Tổng hợp report Tích hợp dữ liệu nguồn khác 10:00 10:05 10:15 Tiền xử lý 10:40 Thời gian còn lại… Tổng hợp dữ liệu của 9:00 AM
  15. Thách thức Nhiều tác vụ cần thực hiện trong vòng

    1 giờ, không còn thời gian cho các tác vụ tương lai ◦ Tiền xử lý dữ liệu. ◦ Tổng hợp dữ liệu. ◦ Bộ lọc Spiders và bots. ◦ Tích hợp dữ liệu từ nguồn khác: Facebook, ARENA, Google Analytics.
  16. Lựa chọn tính toán 40 20 10 0 5 10

    15 20 25 30 35 40 45 Python Spark 1.6 Spark 2.0 Performance Minutes
  17. Spark 2.0 primitive Spark 1.6 Spark 2.0 filter 15ns 1.1ns

    sum w/o group 14ns 0.9ns sum w/ group 79ns 10.7ns hash join 115ns 4.0ns sort (8-bit entropy) 620ns 5.3ns sort (64-bit entropy) 620ns 40ns sort-merge join 750ns 700ns
  18. 03 - Vấn đề quản trị Continuous Integration/Continuous Development(CI/CD): tự

    động hoá tiến trình building, testing, và deploying trơn tru ở nhiều môi trường khác nhau (local, staging, production). Version control: Git, Docker Task management: Jenkins, Mesos, Chronos, Marathon. Automation: Chef, Puppet, Ansible, Capistrano, SaltStack. Log management: Logstash, ElasticSearch, Kibana.
  19. Mindset về công nghệ Event queuing system • Amazon Kinesis

    • Apache Kafka Transformation • Spark • Storm streaming Storage • Hadoop • NoSQL Quản trị • Jenkins • Ansible
  20. Kỹ năng cần có 0 20 40 60 80 100

    Coding (Python, Scala, Java, Shell, NodeJS) Database configurations SQL optimization Server management Networking Data engineer Data analyst Data scientist Xây dựng hệ thống. Monitor hệ thống. Backup hệ thống. Scaling hợp lý với kinh phí.
  21. Kinh nghiệm bản thân Cần môi trường cho mình cơ

    hội làm việc với các công nghệ Big Data. Học thật kĩ kiến thức quản trị mạng và cơ sở dữ liệu để bắt kịp xu hướng dễ dàng hơn. Viết document cho những kiến trúc mình xây dựng (tại sao lựa chọn, mục đích hệ thống, performance test, các điểm cần khắc phục). Nên nghiên cứu thêm về độ phức tạp thuật toán để ứng dụng cho tính toán tối ưu (search, sort, aggregation, streaming, organize database). Nâng cao kĩ năng làm việc nhóm và cập nhật kiến thức công nghệ như Git, Dockerize, CI/CD, Test Driven Development, Automation khi có thể. Nên dành khoản tiền đầu tư cho các khoá học online chất lượng, đừng tiếc tiền cho việc học. Nếu là Data Engineer/System admin thì nên đầu tư lấy chứng chỉ MCSA, CCNA, AWS.
  22. Câu hỏi thường gặp Bắt đầu học Big Data từ

    con số không như thế nào? ◦ Chọn một hệ quản trị cơ sở dữ liệu (MySQL, PostgreSQL, MongoDB). ◦ Thao tác với ngôn ngữ truy vấn SQL. ◦ Thiết kế cơ sở dữ liệu (ràng buộc toàn vẹn, đại số quan hệ, các dạng chuẩn dữ liệu). ◦ Mạng máy tính cơ bản (phân quyền, chia thư mục, SSH, address forwarding, tail –f, vim, nano). ◦ Tìm hiểu về Business Intelligent (OLAP, OLTP, Star/Snowflake schema). ◦ Tìm hiểu về Hadoop, MapReduce, Apache Spark. Nên tự build hay sử dụng cloud service ◦ Tự build: ưu điểm bảo mật dữ liệu theo ý mình, khuyết điểm tốn kém về thời gian chi phí, hệ thống lỗi thời nhanh. ◦ Cloud service: ưu điểm nhanh chóng tích hợp hệ thống, khuyết điểm phụ thuộc hãng cung cấp, chi phí tăng cao nếu không biết kiểm soát. (Amazon, Google, Microsoft)
  23. Câu hỏi thường gặp Thế nào thì được gọi là

    Big Data? ◦ Khi khả năng lưu trữ và tính toán không đáp ứng được nhu cầu của tổ chức. Có cần phải học thêm bằng cấp nào không? ◦ Không. Cần kinh nghiệm là chính. Một số công nghệ nên biết: Docker, PostgreSQL, MongoDB, Apache Spark, Bash shell, AWS, Kafka, Jenkins,… Học ở đâu? ◦ Đọc blog, document của công nghệ đang quan tâm. ◦ Học và lấy chứng chỉ tại Udacity hoặc Amazon certificate. Tự nghiên cứu thì cơ hội việc làm như thế nào nếu không có bằng cấp Big Data? ◦ Big Data không có bằng cấp. Có thể chứng minh năng lực thông qua kinh nghiệm làm việc, chứng chỉ hoặc các tutorial do bạn chia sẻ.
  24. Mindset về công nghệ Event queuing system • Amazon Kinesis

    • Apache Kafka Transformation • Spark • Storm streaming Storage • Hadoop • NoSQL Quản trị • Jenkins • Ansible
  25. Project có thể start Web mạng xã hội như Facebook,

    Twitter, Zalo. Video như Netflix. Nhạc như iTunes. Transaction cao như Stock exchange, Bitcoint exchange. Sử dụng mockaroo để mô phỏng Big Data, thực hiện load test các công nghệ đang tìm hiểu.
  26. Tham khảo thêm What are the best ways to start

    learning about big data for analytics for a person who has no background on coding/any technical knowledge? How do you learn big data?