האדום של אמזון הוא שירות אחסון נתונים בענן המספק עיבוד אנליטי בעל ביצועים גבוהים המבוסס על ארכיטקטורת עיבוד מקבילי מאסיבי (MPP). בנייה ותחזוקה של צנרת נתונים היא אתגר משותף לכל הארגונים. ניהול קבצי ה-SQL, שילוב עבודה בין צוותים, שילוב כל עקרונות הנדסת התוכנה וייבוא כלי עזר חיצוניים יכולים להיות משימה שלוקחת זמן הדורשת תכנון מורכב והכנה רבה.
dbt (DataBuildTool) מציע מנגנון זה על ידי הצגת מסגרת מובנית היטב לניתוח נתונים, טרנספורמציה ותזמור. זה גם מיישם עקרונות כלליים של הנדסת תוכנה כמו שילוב עם מאגרי git, הגדרה מְיַבֵּשׁ קוד, הוספת מקרי בדיקה פונקציונליים, וכולל ספריות חיצוניות. מנגנון זה מאפשר למפתחים להתמקד בהכנת קבצי SQL לפי ההיגיון העסקי, והשאר מטופל על ידי dbt.
בפוסט זה, אנו בוחנים דרך מיטבית וחסכונית לשילוב dbt בתוך Amazon Redshift. אנו משתמשים אמזון אלסטי רישום מיכלים (Amazon ECR) לאחסון תמונות dbt Docker שלנו ו AWS פרגייט כמו שירות מיכלים אלסטי של אמזון (Amazon ECS) משימה להפעלת העבודה.
כיצד פועלת מסגרת dbt עם אמזון Redshift?
ל-dbt יש מודול מתאם אמזון האדום בשם dbt-היסט לאדום שמאפשרת לו להתחבר ולעבוד עם אמזון Redshift. כל פרופילי החיבור מוגדרים בתוך ה-dbt profiles.yml
קוֹבֶץ. בסביבה אופטימלית, אנו מאחסנים את האישורים מנהל סודות AWS ולהחזיר אותם.
הקוד הבא מציג את התוכן של profile.yml:
התרשים הבא ממחיש את מרכיבי המפתח של מסגרת dbt:
המרכיבים העיקריים הם כדלקמן:
- מודלים – אלה נכתבים כמשפט SELECT ונשמרים כקובץ .sql. ניתן לכתוב כאן את כל שאילתות הטרנספורמציה שיכולות להתממש כטבלה או תצוגה. רענון הטבלה יכול להיות מלא או מצטבר על סמך התצורה. למידע נוסף, עיין במודלים של SQL.
- מול מצלמה - כלים אלה סוג 2 משתנים לאט לאט ממדים (SCDs) מעל טבלאות מקור הניתנות לשינוי. SCDs אלה מזהים כיצד שורה בטבלה משתנה לאורך זמן.
- זרעים - אלו הם קבצי CSV בפרויקט dbt שלך (בדרך כלל בספריית ה-seeds שלך), אשר dbt יכול לטעון לתוך מחסן נתונים באמצעות
dbt seed
פקודה. - בדיקות – אלו הן הצהרות שאתה מעלה לגבי המודלים שלך ומשאבים אחרים בפרויקט ה-dbt שלך (כגון מקורות, זרעים ותצלומים). כשאתה רץ
dbt test
, dbt יגיד לך אם כל מבחן בפרויקט שלך עובר או נכשל. - מאקרו – אלו פיסות קוד שניתן לעשות בהן שימוש חוזר מספר פעמים. הן מקבילות ל"פונקציות" בשפות תכנות אחרות, והן שימושיות ביותר אם אתה מוצא את עצמך חוזר על קוד במספר דגמים.
רכיבים אלה מאוחסנים כקבצי .sql ומופעלים על ידי פקודות dbt CLI. במהלך הריצה, dbt יוצר א גרף אציקלי מכוון (DAG) מבוסס על ההתייחסות הפנימית בין רכיבי dbt. הוא משתמש ב-DAG כדי לתזמן את רצף הריצה בהתאם.
ניתן ליצור פרופילים מרובים בתוך הקובץ profiles.yml, שבו dbt יכול להשתמש כדי למקד לסביבות שונות לאדום תוך כדי ריצה. למידע נוסף, עיין בהגדרת הסטת אדום.
סקירת פתרונות
התרשים הבא ממחיש את ארכיטקטורת הפתרונות שלנו.
זרימת העבודה מכילה את השלבים הבאים:
- מחבר הקוד הפתוח dbt-redshift משמש ליצירת פרויקט dbt שלנו כולל כל הדגמים הדרושים, תמונות מצב, בדיקות, פקודות מאקרו ופרופילים.
- נוצרת תמונת Docker ונדחפת למאגר ECR.
- תמונת Docker מנוהלת על ידי Fargate כמשימת ECS המופעלת באמצעות פונקציות שלב AWS. כל האישורים של Amazon Redshift מאוחסנים ב- Secrets Manager, המשמש לאחר מכן את משימת ה-ECS כדי להתחבר עם Amazon Redshift.
- במהלך הריצה, dbt ממירה את כל המודלים, התמונות, הבדיקות ופקודות המאקרו להצהרות SQL תואמות אמזון Redshift והיא מתזמנת את הריצה בהתבסס על ההרצאות הפנימיות גרף שושלת נתונים נשמר. פקודות SQL אלו מופעלות ישירות על האשכול Redshift ולכן עומס העבודה נדחף ישירות לאמזון Redshift.
- כאשר ההרצה תושלם, dbt תיצור קבוצה של קובצי HTML ו-JSON לארח את תיעוד dbt, המתאר את קטלוג הנתונים, הצהרות SQL מלוקטות, גרף שושלת נתונים ועוד.
תנאים מוקדמים
אתה צריך להיות בעל הדרישות המוקדמות הבאות:
- הבנה טובה של עקרונות dbt ושלבי היישום.
- חשבון AWS עם הרשאת תפקיד משתמש לגשת לשירותי AWS המשמשים בפתרון זה.
- קבוצות אבטחה ל-Fargate כדי לגשת לאשכול האדום ולמנהל הסודות מאמזון ECS.
- אשכול היסט לאדום. להוראות יצירה, עיין ב צור אשכול.
- מאגר ECR: להנחיות, עיין ב יצירת מאגר פרטי
- מנהל סודות סוד המכיל את כל האישורים לחיבור לאמזון Redshift. זה כולל את המארח, היציאה, שם מסד הנתונים, שם המשתמש והסיסמה. למידע נוסף, עיין ב צור סוד מסד נתונים של מנהל סודות AWS.
- An אמזון אחסון פשוט (Amazon S3) דלי לארח קבצי תיעוד.
צור פרויקט dbt
אנו משתמשים ב-dbt CLI כך שכל הפקודות מופעלות בשורת הפקודה. לכן, התקן pip אם עדיין לא מותקן. מתייחס התקנה לקבלת מידע נוסף.
כדי ליצור פרויקט dbt, בצע את השלבים הבאים:
- התקן חבילות dbt תלויות:
pip install dbt-redshift
- אתחול פרויקט dbt באמצעות ה
dbt init <project_name>
הפקודה, שיוצרת את כל תיקיות התבניות באופן אוטומטי. - הוסף את כל חפצי ה-DBT הנדרשים.
עיין ב dbt-redshift-etlpattern ריפו הכולל פרויקט dbt התייחסות. למידע נוסף על פרויקטי בנייה, עיין ב על פרויקטים של dbt.
בפרויקט ההתייחסות, יישמנו את התכונות הבאות:
- SCD סוג 1 באמצעות מודלים אינקרמנטליים
- SCD סוג 2 באמצעות צילומי מצב
- קבצי חיפוש זרעים
- מאקרו להוספת קוד לשימוש חוזר בפרויקט
- בדיקות לניתוח נתונים נכנסים
הסקריפט של Python מוכן להביא את האישורים הנדרשים מ- Secrets Manager לגישה לאמזון Redshift. עיין ב export_redshift_connection.py קובץ.
- הכן את
run_dbt.sh
סקריפט להפעלת צינור dbt ברצף. סקריפט זה ממוקם בתיקיית השורש של פרויקט dbt כפי שמוצג ב-repo לדוגמה.
- צור קובץ Docker בספריית האב של תיקיית הפרויקט dbt. שלב זה בונה את התמונה של פרויקט dbt שיידחף למאגר ה-ECR.
העלה את התמונה לאמזון ECR והפעל אותה כמשימת ECS
כדי לדחוף את התמונה למאגר ECR, בצע את השלבים הבאים:
- אחזר אסימון אימות ואמת את לקוח Docker שלך לרישום שלך:
- בנה את תמונת ה-Docker שלך באמצעות הפקודה הבאה:
- לאחר השלמת הבנייה, תייג את התמונה שלך כדי שתוכל לדחוף אותה למאגר:
- הפעל את הפקודה הבאה כדי לדחוף את התמונה למאגר ה-AWS החדש שלך:
- בקונסולת Amazon ECS, צור אשכול עם Fargate כאפשרות תשתית.
- ספק את ה-VPC ואת רשתות המשנה שלך כנדרש.
- לאחר יצירת האשכול, צור משימת ECS והקצה את תמונת ה-dbt שנוצרה כמשפחת הגדרות המשימות.
- בקטע הרשתות, בחר את ה-VPC, רשתות המשנה וקבוצת האבטחה שלך כדי להתחבר עם Amazon Redshift, Amazon S3 ו- Secrets Manager.
משימה זו תפעיל את run_dbt.sh
סקריפט pipeline והפעל את כל הפקודות dbt ברצף. כאשר הסקריפט הושלם, נוכל לראות את התוצאות באמזון Redshift ואת קבצי התיעוד שנדחפו לאמזון S3.
- אתה יכול לארח את התיעוד באמצעות אחסון אתרים סטטי של Amazon S3. למידע נוסף, עיין ב אירוח אתר סטטי באמצעות Amazon S3.
- לבסוף, אתה יכול להריץ משימה זו ב-Step Functions כמשימת ECS כדי לתזמן את המשימות כנדרש. למידע נוסף, עיין ב נהל משימות אמזון ECS או Fargate עם פונקציות צעד.
השמיים dbt-redshift-etlpattern ל-repo יש כעת את כל דוגמאות הקוד הנדרשות.
עלות ביצוע עבודות dbt ב-AWS Fargate כמשימת אמזון ECS עם דרישות תפעוליות מינימליות תימשך בסביבות $1.5 (cost_link) לחודש.
לנקות את
השלם את השלבים הבאים כדי לנקות את המשאבים שלך:
- מחק את אשכול ה-ECS שיצרת.
- מחק את מאגר ה-ECR שיצרת לאחסון קבצי התמונה.
- מחק את אשכול ההסטה לאדום שיצרת.
- מחק את סודות ההסטה לאדום מאוחסן במנהל הסודות.
סיכום
פוסט זה כיסה את היישום הבסיסי של שימוש ב-dbt עם Amazon Redshift בצורה חסכונית על ידי שימוש ב-Fargate ב- Amazon ECS. תיארנו את התשתית העיקרית ואת הגדרת התצורה עם פרויקט לדוגמה. ארכיטקטורה זו יכולה לעזור לך לנצל את היתרונות של מסגרת dbt לניהול פלטפורמת מחסני הנתונים שלך באמזון Redshift.
למידע נוסף על פקודות מאקרו ומודלים של dbt עבור תפעול ותחזוקה פנימיים של Amazon Redshift, עיין בסעיף הבא GitHub ריפו. בפוסט הבא, נחקור את דפוסי החילוץ, ההמרה והטעינה המסורתיים (ETL) שתוכלו ליישם באמצעות מסגרת dbt באמזון Redshift. בדוק את הפתרון הזה בחשבונך וספק משוב או הצעות בהערות.
על הכותבים
Seshadri Senthamaraikannan הוא ארכיטקט נתונים עם צוות שירותים מקצועי של AWS שבסיסו בלונדון, בריטניה. הוא מנוסה ומתמחה היטב ב-Data Analytics ועובד עם לקוחות תוך התמקדות בבניית פתרונות חדשניים וניתנים להרחבה ב-AWS Cloud כדי לעמוד ביעדים העסקיים שלהם. בזמנו הפנוי הוא נהנה לבלות עם משפחתו ולעסוק בספורט.
מוחמד האמי הוא ארכיטקט ביג דאטה בכיר עם שירותים מקצועיים של AWS שבסיסו בלונדון, בריטניה. יש לו למעלה מ-15 שנות ניסיון באדריכלות, הובלה ובניית מחסני נתונים ופלטפורמות ביג דאטה. הוא עוזר ללקוחות לפתח פתרונות ביג דאטה וניתוח כדי להאיץ את התוצאות העסקיות שלהם באמצעות מסע האימוץ בענן. מחוץ לעבודה, מוחמד אוהב לטייל, לרוץ, לשחות ולשחק סקווש.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- מקור: https://aws.amazon.com/blogs/big-data/implement-data-warehousing-solution-using-dbt-on-amazon-redshift/
- :יש ל
- :הוא
- :לֹא
- $ למעלה
- 1
- 10
- 11
- שנים 15
- 15%
- 7
- 8
- 90
- 970
- a
- אודות
- להאיץ
- גישה
- גישה
- חֶשְׁבּוֹן
- לרוחב
- להוסיף
- מוסיף
- אימוץ
- יתרון
- תעשיות
- מאפשר
- כְּבָר
- גם
- אמזון בעברית
- אמזון שירותי אינטרנט
- an
- אנליזה
- אנליטית
- ניתוח
- ניתוח
- ו
- חל
- ארכיטקטורה
- ARE
- סביב
- AS
- לאמת
- אימות
- באופן אוטומטי
- AWS
- שירותים מקצועיים של AWS
- מבוסס
- בסיסי
- BE
- הטבות
- בֵּין
- גָדוֹל
- נתונים גדולים
- לִבנוֹת
- בִּניָן
- בונה
- עסקים
- by
- CAN
- אשר
- מקרים
- קטלוג
- לאתגר
- שינויים
- משתנה
- בחרו
- לְנַקוֹת
- לקוחות
- ענן
- אימוץ ענן
- אשכול
- קוד
- הערות
- Common
- הידור
- להשלים
- מורכב
- תואם
- רכיבים
- תְצוּרָה
- מוגדר
- לְחַבֵּר
- מקשר
- הקשר
- קונסול
- מכולה
- מכיל
- תוכן
- עלות תועלת
- מכוסה
- לִיצוֹר
- נוצר
- יוצר
- יצירה
- אישורים
- מנהג
- לקוחות
- DAG
- נתונים
- ניתוח נתונים
- ניתוח נתונים
- מחסן נתונים
- מחסני נתונים
- מסד נתונים
- בְּרִירַת מֶחדָל
- הגדרה
- תלוי
- מְתוּאָר
- עיצוב
- dev
- לפתח
- מפתחים
- אחר
- ישירות
- סַוָר
- תיעוד
- עושה
- בְּמַהֲלָך
- כל אחד
- מאפשר
- הנדסה
- חברות
- סביבה
- סביבות
- Ether (ETH)
- מבצע
- ניסיון
- מנוסה
- לחקור
- חיצוני
- תמצית
- מאוד
- נכשל
- משפחה
- תכונות
- מָשׁוֹב
- שלח
- קבצים
- להתמקד
- התמקדות
- הבא
- כדלקמן
- בעד
- מסגרת
- החל מ-
- מלא
- פונקציונלי
- פונקציות
- כללי
- ליצור
- Git
- שערים
- טוב
- גרף
- קְבוּצָה
- קבוצה
- יש
- יש
- he
- לעזור
- עוזר
- כאן
- ביצועים גבוהים
- שֶׁלוֹ
- המארח
- אירוח
- איך
- HTML
- HTTPS
- לזהות
- if
- מדגים
- תמונה
- תמונות
- ליישם
- הפעלה
- יושם
- לייבא
- יבוא
- in
- באחר
- כולל
- כולל
- שילוב
- מצטבר
- מידע
- תשתית
- חדשני
- להתקין
- הוראות
- שילוב
- פנימי
- אל תוך
- החדרה
- IT
- עבודה
- מקומות תעסוקה
- מסע
- ג'סון
- מפתח
- שפות
- האחרון
- מוביל
- ספריות
- כמו
- אוהב
- קו
- לִטעוֹן
- הגיון
- התחבר
- לונדון
- נראה
- הרבה
- פקודות מאקרו
- שמירה
- תחזוקה
- לעשות
- לנהל
- מנהל
- ניהול
- באופן מאסיבי
- מנגנון
- לִפְגוֹשׁ
- מינימלי
- מודל
- מודלים
- מודול
- מוחמד
- חוֹדֶשׁ
- יותר
- מספר
- שם
- שם
- הכרחי
- רשתות
- חדש
- עַכשָׁיו
- of
- המיוחדות שלנו
- on
- לפתוח
- קוד פתוח
- מבצע
- מבצעי
- אופטימלי
- אפשרות
- or
- תזמור
- אחר
- שלנו
- תוצאות
- פלטים
- בחוץ
- יותר
- סקירה
- חבילות
- מקביל
- מעברי
- סיסמה
- דפוסי
- עבור
- רשות
- חתיכות
- צינור
- מוצב
- פלטפורמה
- פלטפורמות
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- לְשַׂחֵק
- משחק
- הודעה
- הכנה
- מוּכָן
- העריכה
- תנאים מוקדמים
- יְסוֹדִי
- עקרונות
- פְּרָטִי
- תהליך
- מקצועי
- פּרוֹפִיל
- פרופילים
- תכנות
- שפות תכנות
- פּרוֹיֶקט
- פרויקטים
- לספק
- מספק
- דחוף
- דחף
- פיתון
- שאילתות
- להתייחס
- הפניה
- רישום
- מאגר
- לדרוש
- נדרש
- דרישות
- דורש
- משאבים
- REST
- תוצאות
- לשימוש חוזר
- תפקיד
- שורש
- שׁוּרָה
- הפעלה
- ריצה
- הציל
- להרחבה
- לוח זמנים
- תסריט
- שניות
- סודות
- סעיף
- אבטחה
- לִרְאוֹת
- זרע
- זרעים
- לחצני מצוקה לפנסיונרים
- רצף
- שרות
- שירותים
- סט
- הצבה
- צריך
- הראה
- הופעות
- פָּשׁוּט
- לאט
- תמונת בזק
- So
- תוכנה
- הנדסת תוכנה
- פִּתָרוֹן
- פתרונות
- מָקוֹר
- מקורות
- התמחה
- הוצאה
- ספורט
- SQL
- הצהרה
- הצהרות
- שלב
- צעדים
- חנות
- מאוחסן
- רשתות משנה
- לאחר מכן
- כזה
- שחיה
- שולחן
- תָג
- לקחת
- משימות
- יעד
- המשימות
- משימות
- נבחרת
- לספר
- תבנית
- מבחן
- בדיקות
- זֶה
- השמיים
- שֶׁלָהֶם
- אותם
- אז
- לכן
- אלה
- הֵם
- זֶה
- דרך
- זמן
- דורש זמן רב
- פִּי
- ל
- אסימון
- מסורתי
- לשנות
- טרנספורמציה
- להפעיל
- מופעל
- סוג
- בדרך כלל
- Uk
- הבנה
- להשתמש
- מְשׁוּמָשׁ
- משתמש
- שימושים
- באמצעות
- כלי עזר
- באמצעות
- לצפיה
- מחסן
- אחסון
- דֶרֶך..
- we
- אינטרנט
- שירותי אינטרנט
- אתר
- טוֹב
- מתי
- אשר
- בזמן
- ויקיפדיה
- יצטרך
- עם
- בתוך
- תיק עבודות
- זרימת עבודה
- עובד
- היה
- כתוב
- שנים
- אתה
- עצמך
- זפירנט