בצע בדיקות יחידות ובדיקות שילוב
חלק חיוני בכל זרימת עבודה של הנדסת נתונים הוא להבטיח את המהימנות והנכונות של קווי צינור של עיבוד נתונים.
Azure Databricks מספק כלים ומסגרות לביצוע בדיקות יחידה ושילוב כדי לעזור לך לאמת את הקוד שלך.
בדיקת יחידות מתמקדת באימות רכיבים בודדים או פונקציות של בסיס הקוד בבידוד, ובכך מוודאת שכל חלק מבצע כצפוי.
בדיקות שילוב, מצד שני, מאמתות את האינטראקציות בין מודולים ושירותים שונים, ומבטיחה שהם יפעלו יחד בצורה חלקה.
יישום בדיקת יחידות
בדיקת יחידות ב- Azure Databricks היא נהל חשוב שמבטיח שרכיבים בודדים של צינורות עיבוד הנתונים שלך פועלים כצפוי. ב- Azure Databricks, באפשרותך להשתמש בספריות כגון ולכתיבה pytestunittest של בדיקות יחידות.
כדי להתחיל, צור מחברת או קובץ Script נפרדים שבהם אתה מגדיר את מקרי הבדיקה שלך. לדוגמה, אם יש לך פונקציה שמנקה נתונים, עליך לכתוב בדיקת יחידה כדי לאמת את אופן הפעולה שלה בערכות נתונים שונות של קלט.
# sample_data_cleaning.py
def cleanse_data(df):
return df.dropna()
# test_sample_data_cleaning.py
import pytest
import pandas as pd
from sample_data_cleaning import cleanse_data
def test_cleanse_data():
sample_data = pd.DataFrame({'col1': [1, None, 3]})
expected_data = pd.DataFrame({'col1': [1, 3]})
cleansed_data = cleanse_data(sample_data)
pd.testing.assert_frame_equal(cleansed_data, expected_data)
ב- Azure Databricks, באפשרותך להשתמש בפקודה %run הקסם כדי לייבא ולהפעיל את הבדיקות שלך ישירות במחברת. הפעלת בדיקות יחידות מאפשרת לך לאמת פונקציות בודדות לפני שהן משולבות בזרימות עבודה גדולות יותר.
יישום בדיקות שילוב
בדיקות שילוב ב- Azure Databricks כרוכות בבדיקה כיצד חלקים שונים של צינור הנתונים שלך פועלים יחד. בדיקות שילוב מבטיחות שהאינטראקציות בין מודולים, מסדי נתונים ושירותים שונים יפעלו כראוי.
לדוגמה, ייתכן שתרצה לבדוק את התהליך מקצה לקצה של עיבוד נתונים, המרה ואחסון. מחברות Databricks מקלות עליך לדמות זרימות עבודה אלה ולאמת את התוצאות. להלן דוגמה למבחן שילוב:
# integration_test.py
def ingest_data():
# Simulate data ingestion
return spark.createDataFrame([(1, "A"), (2, "B")], ["id", "value"])
def transform_data(df):
# Simulate data transformation
return df.withColumn("value", df["value"].cast("string"))
def store_data(df):
# Simulate storing data
df.write.mode("overwrite").parquet("/tmp/test_data")
def test_integration():
# Ingest
raw_data = ingest_data()
# Transform
transformed_data = transform_data(raw_data)
# Store
store_data(transformed_data)
# Validate
stored_data = spark.read.parquet("/tmp/test_data")
assert stored_data.count() == 2
assert stored_data.schema == transformed_data.schema
השתמש ב- Databricks CLI לבדיקה
באפשרותך להשתמש ב- Databricks CLI כדי לנהל את סביבת Azure Databricks שלך להפוך את תהליך הבדיקה לאוטומטי. באפשרותך להעלות את קבצי ה- Script שלך ל- Azure Databricks ולבצע אותם כמשימות, דבר שימושי לשילוב עם קווי צינור של CI/CD.
לדוגמה, באפשרותך ליצור קובץ Script של מעטפת המפעיל את בדיקות היחידות והשילוב:
# run_tests.sh
databricks fs cp test_sample_data_cleaning.py dbfs:/tests/test_sample_data_cleaning.py
databricks fs cp integration_test.py dbfs:/tests/integration_test.py
databricks jobs run-now --job-id <job-id-for-unit-tests>
databricks jobs run-now --job-id <job-id-for-integration-tests>
על-ידי תזמון משימות אלה, באפשרותך להבטיח שהבדיקות שלך יפעלו באופן אוטומטי בכל פעם שיש שינוי בבסיס הקוד שלך.
יישום שילוב רציף (CI) עם Azure DevOps
שילוב בדיקות Databricks בצינור Azure DevOps מבטיח שהקוד שלך נבדק ברציפות כחלק מזרימת העבודה של הפיתוח. באפשרותך להגדיר צינור ב- Azure DevOps הכולל שלבים לבדיקת מחברות Databricks שלך.
להלן דוגמה של קובץ צינור YAML:
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- script: |
echo "Running Unit Tests"
databricks jobs run-now --job-id <job-id-for-unit-tests>
displayName: 'Run Unit Tests'
- script: |
echo "Running Integration Tests"
databricks jobs run-now --job-id <job-id-for-integration-tests>
displayName: 'Run Integration Tests'
צינור Azure DevOps מפעיל באופן אוטומטי את הביצוע של היחידה שלך ומבחנים שילוב בכל פעם ששינויים נדחסים לענף הראשי.
הבנת שיטות עבודה מומלצות לבדיקה
כדי לבצע ביעילות בדיקות יחידות ושילוב ב- Azure Databricks, צייתו לשיטות עבודה מומלצות כגון מבודדות של סביבת בדיקה, שימוש בנתונים מדומה וניקוי משאבים לאחר הבדיקות:
- בודד את סביבות הבדיקה שלך באמצעות אשכולות או סביבות עבודה נפרדים של Azure Databricks כדי למנוע הפרעות לתוני ייצור.
- השתמש בנתונים מדומה כדי לדמות תרחישים שונים מבלי להשתמש במקורות נתונים חיצוניים.
- ודא שקבצי ה- Script לבדיקה כוללים שלבי ניקוי להסרת נתוני בדיקה או קבצים זמניים שנוצרו במהלך הבדיקה.
על-ידי ביצוע שיטות עבודה אלה ושימוש בכלים ובשילובים החזקים של Azure Databricks, תוכל ליצור אסטרטגיית בדיקות מהימנה ויעילה עבור קווי צינור הנתונים שלך.