כלי ניתוח פרוגרמטיים
במאמר הזה מוסברות כמה דרכים לכתיבה ולהרצה של קוד כדי לנתח נתונים שמנוהלים ב-BigQuery.
למרות ש-SQL היא שפת שאילתות עוצמתית, שפות תכנות כמו Python, Java או R מספקות תחביר ומגוון רחב של פונקציות סטטיסטיות מובנות, שאנליסטים של נתונים עשויים למצוא אותן יותר מובנות וקלות לתפעול עבור סוגים מסוימים של ניתוח נתונים.
באופן דומה, למרות שגיליונות אלקטרוניים נמצאים בשימוש נרחב, סביבות תכנות אחרות כמו מחברות יכולות לפעמים לספק סביבה גמישה יותר לביצוע ניתוח נתונים מורכב ולחיפוש נתונים.
קובצי notebook של Colab Enterprise
אתם יכולים להשתמש במחברות Colab Enterprise ב-BigQuery כדי להשלים תהליכי עבודה של ניתוח ולמידת מכונה (ML) באמצעות SQL, Python וחבילות ו-API נפוצים אחרים. תיקיות Notebook מציעות שיתוף פעולה וניהול משופרים עם האפשרויות הבאות:
- משתפים מחברות עם משתמשים וקבוצות ספציפיים באמצעות ניהול זהויות והרשאות גישה (IAM).
- בודקים את היסטוריית הגרסאות של ה-Notebook.
- חזרה לגרסאות קודמות של המחברת או יצירת ענף מהן.
מחברות הן נכסי קוד של BigQuery Studio שמבוססים על Dataform, למרות שהמחברות לא מוצגות ב-Dataform. שאילתות שמורות הן גם נכסי קוד. כל נכסי הקוד מאוחסנים באזור שמוגדר כברירת מחדל. עדכון אזור ברירת המחדל משנה את האזור של כל נכסי הקוד שנוצרו אחרי העדכון.
היכולות של מחברת זמינות רק במסוף Google Cloud .
המחברות ב-BigQuery מציעות את היתרונות הבאים:
- BigQuery DataFrames משולב במחברות, ולא נדרשת הגדרה. BigQuery DataFrames הוא API בשפת Python שמאפשר לכם לנתח נתונים ב-BigQuery בהיקף גדול באמצעות ממשקי ה-API של pandas DataFrame ושל scikit-learn.
- פיתוח קוד בעזרת AI גנרטיבי של Gemini.
- השלמה אוטומטית של הצהרות SQL, כמו בעורך של BigQuery.
- היכולת לשמור, לשתף ולנהל גרסאות של מחברות.
- היכולת להשתמש ב-matplotlib, seaborn ובספריות פופולריות אחרות כדי להמחיש נתונים בכל שלב בתהליך העבודה.
- היכולת לכתוב ולהריץ SQL בתא שיכול להפנות למשתני Python מתוך ה-notebook.
- תצוגה חזותית אינטראקטיבית של DataFrame עם תמיכה בצבירה ובהתאמה אישית.
כדי להתחיל לעבוד עם מחברות, אפשר להשתמש בתבניות מגלריית המחברות. מידע נוסף זמין במאמר יצירת מחברת באמצעות גלריית המחברות.
BigQuery DataFrames
BigQuery DataFrames היא קבוצה של ספריות Python בקוד פתוח שמאפשרות לכם לנצל את היתרונות של עיבוד נתונים ב-BigQuery באמצעות ממשקי API מוכרים של Python. BigQuery DataFrames מטמיע את ממשקי ה-API של pandas ו-scikit-learn על ידי העברת העיבוד ל-BigQuery באמצעות המרה ל-SQL. העיצוב הזה מאפשר לכם להשתמש ב-BigQuery כדי לבחון ולעבד טרה-בייט של נתונים, וגם לאמן מודלים של למידת מכונה, והכול באמצעות ממשקי API של Python.
היתרונות של BigQuery DataFrames:
- יותר מ-750 ממשקי API של pandas ו-scikit-learn מיושמים באמצעות המרה שקופה של SQL ל-BigQuery ול-BigQuery ML APIs.
- ביצוע מושהה של שאילתות לשיפור הביצועים.
- הרחבת טרנספורמציות של נתונים באמצעות פונקציות Python שהוגדרו על ידי המשתמש, כדי לאפשר לכם לעבד נתונים בענן. הפונקציות האלה נפרסות אוטומטית כפונקציות מרוחקות של BigQuery.
- אינטגרציה עם Vertex AI כדי לאפשר לכם להשתמש במודלים של Gemini ליצירת טקסט.
פתרונות אחרים לניתוח נתונים באופן פרוגרמטי
ב-BigQuery זמינים גם הפתרונות הבאים לניתוח נתונים באופן פרוגרמטי:
קובצי notebook של Jupyter
Jupyter היא אפליקציה בקוד פתוח שמבוססת על אינטרנט, לפרסום מחברות שמכילות קוד פעיל, תיאורים טקסטואליים והדמיות. מדעני נתונים, מומחים ללמידת מכונה וסטודנטים משתמשים בפלטפורמה הזו בדרך כלל למשימות כמו ניקוי נתונים וטרנספורמציה שלהם, סימולציה מספרית, מודלים סטטיסטיים, ויזואליזציה של נתונים ולמידת מכונה.
מחברות Jupyter Notebooks מבוססות על ליבת IPython, מעטפת אינטראקטיבית עוצמתית שיכולה לקיים אינטראקציה ישירה עם BigQuery באמצעות IPython Magics for BigQuery. לחלופין, אפשר לגשת ל-BigQuery ממופעי מחברות Jupyter על ידי התקנה של אחת מספריות הלקוח של BigQuery שזמינות. אפשר ליצור ויזואליזציה של נתונים מ-BigQuery GIS באמצעות מחברות Jupyter דרך התוסף GeoJSON. פרטים נוספים על השילוב עם BigQuery זמינים במדריך Visualizing BigQuery data in a Jupyter notebook.
JupyterLab הוא ממשק משתמש מבוסס-אינטרנט לניהול מסמכים ופעילויות כמו מחברות Jupyter, עורכי טקסט, מסופים ורכיבים בהתאמה אישית. ב-JupyterLab, אפשר לסדר כמה מסמכים ופעילויות זה לצד זה באזור העבודה באמצעות כרטיסיות וחלונות מפוצלים.
אפשר לפרוס מחברות Jupyter וסביבות JupyterLab ב-Google Cloud באמצעות אחד מהמוצרים הבאים:
- מכונות Vertex AI Workbench, שירות שמציע סביבת JupyterLab משולבת שבה מפתחי למידת מכונה ומדעני נתונים יכולים להשתמש בחלק מה-frameworks העדכניים ביותר של מדעי נתונים ולמידת מכונה. Vertex AI Workbench משולב עם מוצרי נתונים אחרים כמו BigQuery, כך שקל לעבור מהטמעת נתונים לעיבוד מקדים ולבדיקה, ובסופו של דבר לאימון מודלים ולפריסה שלהם. Google Cloud מידע נוסף על מכונות של Vertex AI Workbench
- Dataproc, שירות מנוהל מלא, מהיר וקל לשימוש להפעלת אשכולות של Apache Spark ו-Apache Hadoop בצורה פשוטה וחסכונית. אפשר להתקין מחברות Jupyter ו-JupyterLab באשכול Dataproc באמצעות הרכיב האופציונלי Jupyter. הרכיב מספק ליבת Python להרצת קוד PySpark. כברירת מחדל, מחברות Dataproc מוגדרות באופן אוטומטי כך שהן נשמרות ב-Cloud Storage, ולכן קובצי המחברות זהים ונגישים גם באשכולות אחרים. כשמעבירים מחברות קיימות ל-Dataproc, צריך לוודא שהתלויות של המחברות כלולות בגרסאות Dataproc הנתמכות. אם אתם צריכים להתקין תוכנה בהתאמה אישית, כדאי ליצור תמונה משלכם ב-Dataproc, לכתוב פעולות אתחול משלכם או לציין דרישות לחבילות Python בהתאמה אישית. כדי להתחיל, אפשר לעיין במדריך בנושא התקנה והפעלה של מחברת Jupyter באשכול Dataproc.
Apache Zeppelin
Apache Zeppelin
הוא פרויקט קוד פתוח שמציע מחברות מבוססות-אינטרנט לניתוח נתונים.
אפשר לפרוס מופע של Apache Zeppelin ב-Dataproc על ידי התקנה של רכיב אופציונלי של Zeppelin.
כברירת מחדל, מחברות נשמרות ב-Cloud Storage בקטגוריית ההכנה של Dataproc, שמוגדרת על ידי המשתמש או נוצרת אוטומטית כשהאשכול נוצר. אפשר לשנות את המיקום של המחברת
על ידי הוספת המאפיין zeppelin:zeppelin.notebook.gcs.dir כשיוצרים את
האשכול. מידע נוסף על התקנה והגדרה של Apache Zeppelin זמין במדריך לרכיב Zeppelin.
לדוגמה, אפשר לעיין במאמר בנושא ניתוח מערכי נתונים ב-BigQuery באמצעות BigQuery Interpreter ל-Apache Zeppelin.
Apache Hadoop, Apache Spark ו-Apache Hive
כחלק מההעברה של צינור עיבוד הנתונים לניתוח, יכול להיות שתרצו להעביר חלק ממשימות Apache Hadoop, Apache Spark או Apache Hive מדור קודם שצריכות לעבד נתונים ישירות ממחסן הנתונים. לדוגמה, אפשר לחלץ תכונות לעומסי עבודה של למידת מכונה.
Dataproc מאפשר לפרוס אשכולות מנוהלים של Hadoop ו-Spark בצורה יעילה וחסכונית. Dataproc משתלב עם מחברים של BigQuery בקוד פתוח. המחברים האלה משתמשים ב-BigQuery Storage API, שמעביר נתונים במקביל ישירות מ-BigQuery דרך gRPC.
כשמעבירים את עומסי העבודה הקיימים ב-Hadoop וב-Spark אל Dataproc, אפשר לבדוק אם התלות של עומסי העבודה מכוסה על ידי גרסאות Dataproc הנתמכות. אם אתם צריכים להתקין תוכנה בהתאמה אישית, כדאי ליצור תמונת Dataproc משלכם, לכתוב פעולות אתחול משלכם או לציין דרישות לחבילות Python בהתאמה אישית.
כדי להתחיל, אפשר לעיין במדריכים למתחילים של Dataproc ובדוגמאות קוד של מחבר BigQuery.
Apache Beam
Apache Beam היא מסגרת קוד פתוח שמספקת קבוצה עשירה של פרימיטיבים של עיבוד החלק הנצפה בלבד וניתוח סשנים, וגם מערכת אקולוגית של מחברים למקורות ולמאגרי נתונים, כולל מחבר ל-BigQuery. Apache Beam מאפשרת לכם לשנות ולהעשיר נתונים גם במצב סטרימינג (בזמן אמת) וגם במצב אצווה (היסטורי) עם אמינות וביטוי שווים.
Dataflow הוא שירות מנוהל במלואו להרצת משימות של Apache Beam בקנה מידה רחב. הגישה של Dataflow בלי שרת (serverless) מסירה את התקורה התפעולית, והביצועים, ההתאמה לעומס, הזמינות, האבטחה והתאימות מטופלים באופן אוטומטי, כך שאתם יכולים להתמקד בתכנות במקום בניהול של אשכולות שרתים.
יש כמה דרכים לשלוח משימות Dataflow, למשל דרך ממשק שורת הפקודה, דרך Java SDK או דרך Python SDK.
אם רוצים להעביר את שאילתות הנתונים וצינורות הנתונים מפריימוורקים אחרים אל Apache Beam ו-Dataflow, אפשר לקרוא על מודל התכנות של Apache Beam ולעיין במסמכי התיעוד הרשמיים של Dataflow.
משאבים אחרים
BigQuery מציע מגוון רחב של ספריות לקוח בכמה שפות תכנות, כמו Java, Go, Python, JavaScript, PHP ו-Ruby. חלק ממסגרות הניתוח של נתונים, כמו pandas, מספקות תוספים שמתקשרים ישירות עם BigQuery. כדי לראות דוגמאות מעשיות, אפשר לעיין במדריך בנושא הדמיה של נתוני BigQuery במחברת Jupyter.
לבסוף, אם אתם מעדיפים לכתוב תוכניות בסביבת מעטפת, אתם יכולים להשתמש בכלי שורת הפקודה של BigQuery.