Apache Airflow trên Raspberry Pi Terminal

Phân tích dữ liệu với Python | Bắt đầu với Jupyter Notebook, Google Colaboratory và Rasberry Pi

1. Vì sao chọn phân tích dữ liệu với Python?

1.1. Cơ duyên đến với Python

Tuy đã nghe nói đến Python và đã từng học làm quen qua một số khoá học (đều bỏ dở sau khi học một vài phần lý thuyết mở đầu) thì mình quyết tâm đến với Python bằng một lý do rất tình cờ. Một ngày nọ, chiếc laptop Windows của mình bị hỏng, buộc phải mượn Macbook của vợ để sử dụng và bàng hoàng phát hiện ra Microsoft Power BI không hỗ trợ trên MacOS. Không chỉ có thế, Excel trên MacOS dường như cũng là một thảm hoạ khi không hỗ trợ cài các Plugin quen thuộc như Power Pivot hay Fuzzy Search giống như bản Windows. Ở thời điểm bấy giờ, Power BI là phần mềm mạnh mẽ nhất mình dùng để phân tích dữ liệu và xây dựng các dashboard dùng để phân tích và quản lý toàn bộ các hoạt động Digital Marketing trên công ty. Sau chút bỡ ngỡ với MacOS, mình tin hẳn phải có một giải pháp thay thế nào đó để vừa có thể trải nghiệm MacOS một cách mượt mà nhưng cũng đáp ứng được yêu cầu công việc liên quan nhiều đến xử lý dữ liệu của mình. Và như thế Python xuất hiện như một giải pháp không thể thuyết phục hơn. Mình mất khoảng 10 ngày kể từ Tết dương lịch 2021 để đọc tài liệu trên Oreilly.com và làm quen với Python for Data Science.


Cuốn sách ưa thích đầu tiên của mình về Phân tích dữ liệu với Python | Python for Data Analysis - 2nd Edition
Cuốn sách ưa thích đầu tiên của mình về Phân tích dữ liệu với Python | Python for Data Analysis - 2nd Edition

1.2. Vì sao phải Phân tích dữ liệu với Python?

Có rất nhiều lý do để Python xứng đáng là cái tên hàng đầu trong các công cụ phân tích dữ liệu. Đối với mình có thể ra một số lý do như sau:

  • Python có thể được sử dụng trên hầu hết các nền tảng thiết bị: bạn có thể dùng Python trên MacOS, Windows, Linux hay thậm chí trên chiếc tablet gọn nhẹ của mình thông qua ứng dụng đám mây.
  • Python được hỗ trợ cực mạnh với vô số thư viện có sẵn phục vụ cho đủ loại nhu cầu từ phân tích dữ liệu, tự động hoá,..vv. Bạn có thể tìm thấy câu trả lời cho những vấn đề của mình chỉ đơn giản với việc tìm kiếm từ cộng đồng người dùng Python qua stackoverflow, github, ..vv
  • Mã nguồn mở, miễn phí hoàn toàn: bạn chẳng cần bận tâm nhiều đến vấn đề vi phạm bản quyền, chẳng cần crack hay bẻ khoá như vẫn thường làm với các phần mềm phổ biến khác.
  • Khả năng tự động hoá cao. Không cần thực hiện nhiều thao tác thủ công sử dụng giao diện đồ hoạ, bạn có thể viết code hoàn toàn để thực hiện các tác vụ của mình. Khi thay đổi máy tính, thay đổi đầu vào của tác vụ chỉ cần sửa đổi một chút trên đoạn code là bạn có thể tái tạo đầu ra của tác vụ một các hoàn hảo mà không gặp trở ngại nào.
  • Yêu cầu phần cứng thấp: Python có thể chạy mượt mà với hầu hết các thiết bị mà không yêu cầu cao về phần cứng. Bạn có thể tốt chỉ với chiếc máy tính nhúng Rasberry Pi sử dụng hệ điều hành Linux với RAM 2GB hay 4GB mà không găp vấn đề gì. Những phần mềm như Power BI luôn yêu cầu CPU và RAM mạnh mẽ để xử lý các thao tác nặng nề của mình.
  • Làm việc được với hầu hết các định dạng data, file với tốc độ rất nhanh: Nếu đọc các file CSV lên đến cả GB thì Power BI hay Excel sẽ gặp tình trạng đứng máy hoặc tải rất lâu để hiển thị toàn bộ dữ liệu cho bạn. Với python, bạn có thể tải dữ liệu vào dataframe và xem trước với Pandas cực kỳ nhanh chóng, bạn có quyền chọn vùng dữ liệu nào được tải xem trước thay vì phải đợi tải cả file rồi mới xem được như các phần mềm kể trên.
  • Mình sử dụng một chiếc tablet Samsung Tab S6 khi di chuyển hoặc du lịch cho tiện lợi. Những lúc ấy không thể chạy được các chương trình xử lý dữ liệu như trên laptop hoàn chỉnh vì vậy chạy Python thông qua ứng dụng đám mây như Google Colab là ý tưởng tuyệt vời. Vừa kết hợp yếu tố cơ động nhưng vẫn rất mạnh mẽ để hoàn thành tốt công vịệc.

Chừng này lý do là quá đủ để mình quyết định sử dụng Python là công cụ chính để phân tích dữ liệu rồi đó.

2. Mình đã bắt đầu với Python như thế nào?

2.1. Anaconda

Anaconda là một bản phân phối ngôn ngữ lập trình Python hoàn chỉnh thích hợp cho mục đích phân tích dữ liệu và tính toán khoa học. Tất cả các gói phần mềm cần thiết đều đi kèm sẵn khi bạn cài đặt Anaconda trên máy tính của mình. Công cụ phổ biến nhất cho những người mới bắt đầu phân tích dữ liệu với python sẽ là Jupyter Notebook. Bạn có thể tải về bản Anaconda phù hợp với hệ điều hành của mình Tại đây

Giao diện Anaconda trên máy tính Windows 10
Anaconda trên máy tính Windows 10 của mình (sau khi máy hết hỏng)

2.2. Jupyter Notebook

Jupyter Notebook là sự kết hợp hoàn hảo giữa việc thực thi các dòng lệnh và xuất kết quả đầu ra trong cùng một giao diện thân thiện với người dùng ngay trên trình duyệt web. Việc này quả là tuyệt vời với những người mới vì bạn có thể chạy các dòng lệnh và kiểm tra kết quả, gỡ lỗi một các thuận tiện nhất. Các kết quả từ phân tích của bạn cũng được trình bày khá ưa nhìn với Jupyter Notebook.

Giao diện khởi động của Jupyter Notebook trên bản phân phối Anaconda
Giao diện khởi động của Jupyter Notebook trên bản phân phối Anaconda

2.3. Google Colaboratory (Google Colab)

Google Colab là một sản phẩm của Google Research cho phép người dùng thực thi Python code thông qua trình duyệt web mà không cần trải qua các bước cài đặt phức tạp, đặc biệt là nó hoàn toàn miễn phí với tất cả người dùng. Google Colab phù hợp cho mục đích phân tích dữ liệu, máy học (machine learning) và giáo dục. Cụ thể thì Colab chính là Jupyter Notebook được tuỳ biến và host trên máy chủ của Google. Bạn chỉ cần sở hữu một tài khoản Google là đã có thể bắt đầu thực hành Python thông qua Colab. Bạn có thể sử dụng kết hợp Colab với các ứng dụng đám mây của Google như Google Drive, Google Sheets cực kỳ tiện lợi và được đồng bộ qua Internet mà không cần 1 máy tính cục bộ. Với mình thì khi đi du lịch nhưng vẫn không thể rời bỏ hoàn toàn công việc, mình chỉ cần mở chiếc tablet Samsung Tab S6 lên là đã có thể sử dụng Colab. Tuy thấy có những phàn nàn về việc giao diện của Colab đã bị thay đổi nhiều so với trải nghiệm Jupyter Notebook thuần nhưng cá nhân mình thấy cách tuỳ biến của Colab khoa học và thuận thiện hơn hẳn so với Jupyter Notebook. Một số tính năng khá hay của Google Colab có thể kể đến là:

  • Tự động lưu file lên cloud dù bạn làm việc với Runtime của Google hay máy local
  • Hiển thị mục lục với cấu trúc markdown có trong notebook
  • Tìm kiếm và chèn các đoạn code mẫu của Google hoặc do bạn tạo vào notebook khá thuận tiện
  • Hiển thị cây thư mục file, cho phép thao tác nhanh với thư mục và file
  • Cho phép chèn hình ảnh, form tương tác vào notebook giúp việc thiết kế Dashboard trở nên đơn giản và dễ dàng hơn so với Jupyter Notebook gốc.
  • Ẩn code trong giao diện notebook, có thể ngăn chặn người dụng được chia sẻ xem hay tùy biến code.

Tham khảo thêm FAQ về Google Colab Tại đây

Bắt đầu lập trình Python for Data Science với Google Colab
Bắt đầu lập trình Python for Data Science với Google Colab

2.4. Terminal/ Command Prompt

Terminal (MacOS & Linux) và Command Prompt (hay CMD trên Windows + Anaconda) là chương trình giao diện cửa sổ dòng lệnh (command line interface) dùng để giao tiếp với máy tính thông qua việc thực thi các câu lệnh trong các trường hợp không sử dụng giao diện đồ họa với chuột và bàn phím. Khi sử dụng thường xuyên cho mục đích Phân tích dữ liệu với Python thì chắc hẳn đây cũng sẽ là những ứng dụng bạn sẽ làm việc với chúng khá nhiều. Thay vì cài đặt đặt phần mềm, thực hiện các thao tác bằng giao diện đồ hoạ thì bạn cũng có thể làm được với Terminal. Trong rất nhiều trường hợp Terminal có thể giải quyết công việc của bạn một cách đơn giản, nhanh chóng chỉ với vài dòng lệnh thay vì bạn phải thao tác thủ công thông qua giao diện đồ họa rất vất vả.

2.5. Pip

Pip là hệ thống quản lý gói phần mềm viết bằng Python được sử dụng để cài đặt và quản lý các gói phần mềm. Để cài đặt thêm các gói phần mềm mở rộng ví dụ như facebook business, googleads hay kể cả pandas, numpy và các gói phần mềm quen thuộc khác trên Python bạn sẽ cần đến Pip. Và các câu lệnh với Pip sẽ được thực thi thông qua Terminal/Command Prompt như đã đề cập ở trên.

Command Prompt (cmd) trên Windows
Giao diện làm việc của Command Prompt (cmd) trên Windows

3. Khai thác tối đa khả năng của Python
3.1. Raspberry Pi

Python không chỉ mạnh mẽ khi dùng cho mục đích phân tích dữ liệu, ta còn có thể xây dựng các flow tự động hóa hoàn toàn các công việc nhàm chán để chuẩn bị dữ liệu, làm mới hoặc gửi báo cáo được hẹn giờ. Bạn có thể hẹn giờ để chạy code chỉ đơn giản với ứng dụng Crontab trên Raspberry Pi hay phức tạp hơn với Airflow thông qua giao diện dòng lệnh Terminal.Thực tế là bạn có thể trả tiền cho các dịch vụ của Google Cloud, Amazon Web Service hay bất kỳ dịch vụ nào khác cho bạn host các đoạn code python và lên lịch thực thi chúng tuy nhiên việc này phù hợp hơn với đối tượng người dùng doanh nghiệp và cần có kinh phí để sử dụng dịch vụ. Đối với mình Rasberry Pi là giải pháp thiết thực và tiết kiệm nhất cho người dùng cá nhân để thỏa sức sáng tạo với Python và tối ưu hóa hiệu suất công việc ở công ty.  Rasberry Pi (Raspi) là một chiếc máy tính nhúng chỉ gồm 1 bo mạch duy nhất có kích thước 1 chiếc thẻ ATM. Raspi được phát triển ở Anh bởi Raspberry Pi Foundation với mục đích ban đầu để thúc đẩy việc giảng dạy khoa học máy tính và ngôn ngữ lập trình cho trẻ em ở trường học và nhất là các nước đang phát triển. Raspi có kích thước nhỏ gọn, tối giản và với chi phí thấp nhất có thể với giá giới thiệu khoảng $35 (khi nhập khẩu về Việt Nam thì giá bị đẩy lên khá nhiều). Raspi sử dụng nguồn điện ~15W (cấp nguồn 5.1V, 3A) như một server có thể chạy ngày đêm mà không cần quá lo về tuổi thọ như laptop thông thường. Sau khi thiết lập xong, bạn có thể cắm nguồn cho Rasberry Pi và đặt nó ở một góc phòng tại nhà, kết nối internet qua Wifi và không cần đến màn hình, chuột hay bàn phím. Bạn có thể điều khiển nó thông qua ứng dụng điều khiển từ xa VNC với chiếc laptop, tablet hay thậm chí là điện thoại của mình ở bất cứ đâu miễn là có kết nối Internet. Raspi được cài đặt sẵn Python 3.7 khi xuất xưởng, bạn có thể lập trình bằng bộ ứng dụng cài đặt sẵn như Thonny và Geany khá nhẹ và hữu ích hoặc cài thêm Visual Studio Code đều hoạt động cực kỳ mượt mà. Nếu trước đây mình tìm kiếm một giải pháp để có thể lập trình trên tablet android khá hiếm hoi thì bây giờ chỉ đơn giản là mở VNC Viewer và bắt đầu lập trình trên Raspi như một chiếc máy tính thông thường. Quả là nhiều điều hay ho mở ra những ứng dụng hữu ích nhỉ.

Giao diện của Rasberry Pi. Trong hình là ứng dụng Thonny thực thy một đoạn code Python dùng cho mục đích Web Scraping
Giao diện của Rasberry Pi. Trong hình là ứng dụng Thonny thực thy một đoạn code Python dùng cho mục đích Web Scraping

Gợi ý chi phí đầu tư 1 chiếc Raspi trong khoảng 2.5 triệu bao gồm:Combo Raspberry Pi 4B bản 4GB + củ sạc chính hãng + case kèm quạt tản nhiệt: 2.248.000 đ tại HshopBàn phím dây Dell phổ thông KB216t: 161.000đThẻ nhớ Samsung Evo 64GB U3: ~200.000 đ. Mình tận dụng lại thẻ nhớ có sẵn nên tiết kiệm được khoản này.Chuột Bluetooth và màn hình rời mình đã có sẵn nên không tính thêm vào chi phí.

Combo Raspberry Pi 4B của mình tại nhà
Combo Raspberry Pi 4B bản 4GB RAM tại nhà của mình

3.2. Apache Airflow và các ứng dụng khác

Sẽ giới thiệu tới các bạn khi mình có trải nghiệm thực tế trong các post tiếp theo. Hy vọng một bài viết khái quát có thể cung cấp cho bạn chút thông tin hữu ích để khởi đầu với bộ ứng dụng Python for Data Science. Chưa bao giờ là quá muộn để bắt đầu học thêm điều gì đó mới mẻ giúp nâng cấp chính bạn. Cùng khởi đầu với một năm mới với niềm đam mê học hỏi nhé. Trong lúc chờ đợi, các bạn có thể tham khảo thêm một số bài viết của mình nhé:

Apache Airflow trên Raspberry Pi Terminal
Apache Airflow trên Raspberry Pi Terminal

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Tôi đã đến với Python như thế nào? Câu chuyện về trải nghiệm các “Tool” phân tích dữ liệu
March 28, 2021
oracle cloud homepage
Thiết lập Linux server chạy Python tự động sử dụng Oracle Cloud (Always Free)
June 26, 2021
Hướng dẫn sử dụng Google Colab - Google Colab Tutorial 101
Hướng dẫn sử dụng Google Colab đầy đủ – Python Tutorial
July 29, 2021

Leave a Reply

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