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 เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด