Python Packages ที่ Data Engineers นำไปใช้งานได้
19-ก.ค.-23
คัมภีร์เทพ IT
Python เป็นภาษามีความอเนกประสงค์เมื่อพูดถึง Data Engineering ด้วย modular approach จะช่วยให้เรามี Codebase ที่สามารถจัดการกับงานประเภทใดประเภทหนึ่งได้ตามต้องการ ดังนั้นในบทความนี้จะมาแนะนำ Python Packages ที่ Data Engineers นำไปใช้งานได้
ระดับ Basic
- os, pathlib, glob, re (regex)
Packages เหล่านี้ เปรียบเสมือนพื้นฐานสำคัญเมื่อเราเริ่มต้นเส้นทางของ Data Engineers ซึ่ง Packages เหล่านี้ก็ยังอนุญาตให้เราเข้าไปยัง Directories ต่าง ๆ และค้นหา Files ได้อีกด้วย
- configparser & argparser
บ่อยครั้งที่เราจำเป็นต้องจัดการกับการรับ Input ของ User ในขณะที่ Run Scripts ซึ่ง Packages เหล่านี้ จะช่วยเราในการ Parse ทั้ง Dynamic Input และ Static Configurations
- requests / urllib3
ในฐานะ Data Engineers พวกเรามักจะได้รับ Data จากทั้ง External/Internal APIs ซึ่ง Packages เหล่านี้ จะช่วยให้เราสามารถเชื่อมต่อกับ APIs เหล่านี้และจัดการกับ Data ได้
- pyscopg2 / pymysql / mysql-connector-python
Data Engineers มักจะต้องมีการ Interact กับ RDBMS System เพื่อรับและจัดเก็บ Data อยู่บ่อย ๆ ซึ่ง Packages ทั้ง 2 นี้ จะช่วยให้เราสามารถเข้าถึง Database ได้จากภายใน Python Code ของเรา
- json / pyyaml
การตอบสนองของ API ส่วนใหญ่ มักอยู่ใน JSON และเราจำเป็นต้องจัดการเรื่องนั้น ซึ่ง Jason Package ของ Python สามารถช่วยเราในเรื่องการจัดการกับ Json Data ได้อย่างง่ายดาย YAML ที่คล้าย ๆ กัน จะถูกใช้ใน Data Engineering Project เป็น Config / Manifest เป็นจำนวนมาก ส่วน pyyaml สามารถช่วยให้เราจัดการกับ yaml ด้วย Python ได้
- pandas & numpy
นี่ก็เป็น Python Package สำหรับใช้ในการจัดการกับ Data
- logging
เรามักต้องการสิ่งนี้สำหรับการ Debugging, Tracing & Observability
ระดับ Intermediate
- pip, virtualenv
Packages เหล่านี้ จะช่วยในการจัดการกับ Package และ Dependency
- flask / django / fastAPI / streamlit / pynecone
คงจะมีหลายครั้งที่ Data Engineers จำเป็นต้องสร้าง API สำหรับการเปิดเผย Data หรือสร้าง Internal Web Apps เพื่อให้ผู้อื่นใช้ และใช้ UI-based Tools เพื่อ Interact กับ System ของเรา Packages เหล่านี้สามารถถูกใช้เพื่อสร้าง Web Apps หรือ API ที่ต้องใช้งานกับ Data เหล่านั้น
- airflow / dagster / prefect / mage
เมื่อพูดถึง Data Engineering แน่นอนว่า คุณควรรู้จัก Pipelines และ Run พวกมันด้วย Dependencies ทีเกี่ยวข้อง ด้วย และ Packages เหล่านี้ ก็ช่วยในการ Creating และการ Orchestrating Pipelines
- boto3 / google-api-core / azure-core
เรามักจะมีการ Interact กับ Cloud Providers ไม่รายใดก็รายหนึ่งอยู่เสมอสำหรับ Data Infrastructure ซึ่ง Packages เหล่านี้จะช่วยให้เราสามารถเข้าถึง Resources ต่าง ๆ ได้
- subprocess / psutil / paramiko
ใน Distributed Environments เราจำเป็นต้อง Interact กับ Servers ต่าง ๆ เป็นจำนวนมาก และ Run คำสั่งของระบบปฏิบัติการบน Servers เหล่านั้น และ Packages เหล่านี้ สามารถช่วยเราในการ Run คำสั่งต่าง ๆ บน Servers และรับ Output ของพวกมันได้
- sphinx / mkdocs / jinja
ในฐานะของ Data Engineers พวกเราจำเป็นต้องสร้าง Documentation สำหรับ Projects ของเรา ไม่ว่าจะเป็น User Guides, Developer Guides, Onboarding & FAQs ล้วนสำคัญและจำเป็ยสำหรับทุก Projects ของพวกเรา และ Packages เหล่านี้ ก็ช่วยให้เราสามารถเขียน Documents และให้บริการใน Browsers นอกจากนี้ยังสามารถทำให้ Documentation เป็นส่วนหนึ่งของ Project ได้อีกด้วย ส่วน Jinja ก็เป็นหนึ่งใน Template Engine สำหรับ Python ที่ถูกใช้งานเป็นจำนวนมาก
ระดับ Advanced
- pydoop / pyspark / dbt
ในฐานะ Data Engineers เราอาจจำเป็นต้อง Interact กับ Big Data Ecosystem และ Packages เหล่านี้ สามารถช่วยให้เราทำงานกับ Distributed Frameworks และได้รับประโยชน์จากพวกมัน
- confound-kafka / redis-py / pymongo
เมื่อเรากลายเป็น Advanced Users เราจำเป็นต้อง Interact กับ Low-Latency Databases/Event Stores ซึ่ง Packages เหล่านี้ จะช่วยให้เราสามารถ Interact ผ่าน Python ได้
- pyarrow
Package นี้ นำเสนอการแสดง Data ใน Memory ในรูปแบบที่เหมือนกันไม่ว่าจะอยู่ในภาษาใดก็ตาม สิ่งนี้มีประโยชน์อย่างยิ่ง หากเรากำลังใช้ System จากหลาย ๆ ภาษา ที่จำเป็นต้องมีการแลกเปลี่ยน Data กัน
- sqlalchemy
ในฐานะของ Data Engineers เราจำเป็นต้อง Interact กับ Databases ต่าง ๆ อย่างต่อเนื่อง การเขียน Code แยกกัน สำหรับแต่ละภาษา Programming ดูจะกลายเป็นงานที่ไม่ค่อยมีใครชอบ และ Package อย่าง sqlAlchemy จะช่วยให้เราแก้ปัญหาดังกล่าวด้วย ORM นอกจากนี้ยังมีสิ่งที่คล้ายกันใน Open Source สำหรับ Graph Databases ซึ่งมันคือ GQLAlchemy
- pyjanitor / great_expectation
สำหรับ Data Engineers เราจำเป็นต้องรับรองคุณภาพของ Data และด้วยเหตุนี้เราจึงต้องการเครื่องมือเฉพาะเจาะจง ที่สามารถจัดทำโครงร่าง Data ของเราได้ตามต้องการ ซึ่งเครื่องมือเหล่านี้ สามารถช่วยให้เราบรรลุเป้าหมายนั้นได้
อันที่จริงยังมี Packages อื่น ๆ อีกมากมายที่เราสามารถใช้งาน หรืออาจต้องนำไปใช้ร่วมกันกับ Packages เหล่านี้เพื่อให้สามารถทำงานได้อย่างที่ต้องการ ดังนั้น ในฐานะ Data Engineers เราจึงควรเรียนรู้สิ่งเหล่านั้นอยู่เสมอและเมื่อต้องทำงานกับ Python Packages ต่าง ๆ
ที่มา: https://blog.devgenius.io/
รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert
อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ
บทความล่าสุด