שימוש בסוכן הנדסת נתונים כדי ליצור ולשנות צינורות עיבוד נתונים
הסוכן Data Engineering Agent מאפשר להשתמש ב-Gemini ב-BigQuery כדי ליצור, לשנות ולנהל צינורות נתונים לטעינה ולעיבוד של נתונים ב-BigQuery. בעזרת Data Engineering Agent, אתם יכולים להשתמש בהנחיות בשפה טבעית כדי ליצור צינורות נתונים ממקורות נתונים שונים או להתאים צינורות נתונים קיימים לצרכים שלכם בתחום הנדסת הנתונים. התכונות של Data Engineering Agent הן:
שפה טבעית ליצירת צינורות: הסוכן משתמש ב-Gemini כדי להבין את הנתונים שלכם ולפרש את ההוראות שאתם נותנים לו בשפה פשוטה. אתם יכולים להשתמש בהוראות בשפה פשוטה כדי שהסוכן למהנדסי נתונים יבנה או יערוך צינורות עיבוד נתונים.
שילוב עם Dataform: הסוכן יוצר ומארגן את קוד צינור עיבוד הנתונים הדרוש בקובצי SQLX במאגר Dataform. הסוכן פועל בסביבת העבודה של Dataform, ולכן צינורות Dataform זמינים לסוכן באופן אוטומטי.
הוראות לסוכן בהתאמה אישית: יוצרים הוראות לסוכן בשפה פשוטה כדי להגדיר כללים בהתאמה אישית לסוכן הנדסת הנתונים. ההוראות לסוכן נשמרות בארגון, ויכולות להיות שימושיות לאכיפת כללים ברמת הארגון, כמו מוסכמות לגבי שמות או מדריכי סגנון.
אימות צינור עיבוד הנתונים: הסוכן מאמת את הקוד שנוצר כדי לוודא שצינורות עיבוד הנתונים פועלים.
אתם יכולים להשתמש בהנחיות בשפה טבעית עם סוכן הנדסת הנתונים כדי ליצור קובצי SQLX של טבלאות, תצוגות, הצהרות, הצהרות ופעולות. לדוגמה, אתם יכולים להשתמש ב-Data Engineering Agent כדי:
- טעינת נתונים ממקורות נתונים חיצוניים כמו Cloud Storage בפורמטים שונים, כמו CSV, AVRO או PARQUET.
- ליצור או להשתמש בשגרות קיימות ב-BigQuery (פונקציות מוגדרות על ידי המשתמש) כדי לבצע ניתוח והמרות מותאמים אישית של הנתונים.
- מגדירים הנחיות לשימוש חוזר לסוכן בשפה טבעית.
דוגמאות נוספות להנחיות שאפשר להשתמש בהן עם הסוכן Data Engineering Agent זמינות במאמר דוגמאות להנחיות.
מגבלות
אלו המגבלות שחלות על סוכן הנדסת הנתונים:
- הסוכן Data Engineering הוא מוצר טרום-GA ולא מיועד לשימוש בסביבת ייצור.
- הסוכן Data Engineering Agent לא תומך בפקודות בשפה טבעית לסוגי הקבצים הבאים:
- מחשבים ניידים
- תהליך הכנת נתונים
- Javascript בכל SQLx
- הסוכן Data Engineering Agent לא יכול להפעיל צינורות עיבוד נתונים. המשתמשים צריכים לבדוק את צינורות הנתונים ולהריץ אותם או לקבוע מועד להרצה שלהם.
- הסוכן Data Engineering Agent לא יכול לאמת SQL שתלוי במשאבי ביניים שלא קיימים בלי הפעלה מלאה של צינור הנתונים (הפעלה שמתבצעת על ידי המשתמש).
- הסוכן Data Engineering Agent לא יכול לחפש קישורי אינטרנט או כתובות URL שסופקו בהוראות או בהנחיות ישירות.
- כשמייבאים קבצים בקובץ הוראות לסוכן, תחביר הייבוא
@תומך רק בנתיבים שמתחילים ב-./, ב-/או באות. - התכונה תצוגה מקדימה של נתונים נתמכת רק בטבלאות, בהצהרות או בשאילתות עם ההגדרה
hasOutputשל הדגלtrue.
אזורים נתמכים
Gemini ב-BigQuery מופעל מהאזורים הבאים:
אמריקה
- איווה (
us-central1)
אירופה
- פינלנד (
europe-north1) - פרנקפורט (
europe-west3)
שינוי אזור העיבוד
אפשר לשנות את אזור העיבוד של Data Engineering Agent באחת מהדרכים הבאות:
צינורות נתונים של BigQuery
אם אתם משתמשים בצינורות נתונים של BigQuery, אתם יכולים לעדכן את אזור העיבוד על ידי הגדרת אזור ברירת המחדל לנכסי הקוד. מידע נוסף מופיע במאמר הגדרת אזור ברירת המחדל לנכסי קוד.
אם לא מוגדר אזור ברירת מחדל, סוכן הנדסת הנתונים מעבד את הנתונים שלכם באופן גלובלי.
Dataform
אם אתם משתמשים ב-Dataform, אתם יכולים לעדכן את אזור העיבוד על ידי שינוי הערך של defaultLocation בקובץ ההגדרות של זרימת העבודה ב-Dataform, או workflow_settings.yaml. מידע נוסף זמין במאמר הגדרת ההגדרות של זרימת העבודה ב-Dataform.
אם לא מגדירים את הערך defaultLocation, סוכן הנדסת הנתונים מעבד את הנתונים באופן גלובלי.
איך סוכן הנדסת הנתונים משתמש בנתונים שלכם
כדי לספק תשובות איכותיות יותר, סוכן הנדסת הנתונים יכול לאחזר נתונים ומטא-נתונים נוספים מ-BigQuery ומ-Dataplex Universal Catalog, כולל שורות לדוגמה מטבלאות BigQuery ופרופילים של סריקת נתונים שנוצרו ב-Dataplex Universal Catalog. הנתונים האלה לא משמשים לאימון הסוכן להנדסת נתונים, אלא רק במהלך שיחות עם הסוכן כהקשר נוסף כדי לשפר את התשובות שלו.
לפני שמתחילים
מוודאים ש-Gemini ב-BigQuery מופעל בפרויקט Google Cloud . מידע נוסף זמין במאמר בנושא הגדרת Gemini ב-BigQuery.
צריך גם להפעיל את Gemini Data Analytics API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לשימוש ב-Data Engineering Agent, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
עורך הקוד של Dataform (
roles/dataform.codeEditor) -
BigQuery Job User (
roles/bigquery.jobuser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת פייפליין נתונים באמצעות Data Engineering Agent
כדי להשתמש ב-Data Engineering Agent ב-BigQuery, בוחרים באחת מהאפשרויות הבאות:
צינורות נתונים של BigQuery
כדי להשתמש ב-Data Engineering Agent בממשק של צינורות BigQuery:
עוברים לדף BigQuery.
בעורך השאילתות, לוחצים על arrow_drop_down יצירת חדש > Pipeline.
בוחרים אפשרות לפרטי הכניסה להרצה ולוחצים על Get started (תחילת העבודה). הסוכנים לא משתמשים בפרטי הכניסה האלה, אבל הם נדרשים כדי להפעיל את פייפליין הנתונים שנוצר.
לוחצים על התנסות בממשק של ה-Agent ל-פייפליין.
בשדה Ask agent (שאלת Agent), מזינים הנחיה בשפה טבעית כדי ליצור פייפליין. לדוגמה:
Create dimension tables for a taxi trips star schema from new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all the descriptive attributes.אחרי שמזינים את ההנחיה, לוחצים על שליחה.
סוכן הנדסת הנתונים יוצר פייפליין נתונים על סמך ההנחיה שלכם.
פייפליין הנתונים שנוצר על ידי סוכן הנדסת הנתונים הוא טיוטה מוצעת של פייפליין נתונים. אפשר ללחוץ על צומת של צינור כדי לבדוק את שאילתת SQLX שנוצרה. כדי להחיל את פייפליין הנתונים שהסוכן הציע, לוחצים על החלה.
Dataform
כדי להשתמש בסוכן הנדסת הנתונים ב-Dataform:
עוברים לדף Dataform.
בוחרים מאגר.
בוחרים סביבת עבודה לפיתוח או יוצרים סביבת עבודה חדשה.
בסביבת העבודה, לוחצים על Ask Agent (שאלת נציג).
בהנחיה Ask agent שמופיעה, מזינים הנחיה בשפה טבעית כדי ליצור פייפליין. לדוגמה:
Create dimension tables for a taxi trips star schema from new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all the descriptive attributes.אחרי שמזינים את ההנחיה, לוחצים על שליחה.
אחרי ששולחים את ההנחיה, סוכן הנדסת הנתונים יוצר פייפליין ומשנה קובצי SQLX של Dataform על סמך ההנחיה. הסוכן מחיל את השינויים האלה ישירות על הקבצים בסביבת העבודה.
בדיקת פייפליין
בפייפליין נתונים שנוצר על ידי Data Engineering Agent, אפשר ללחוץ על צומת של פייפליין כדי לבדוק אותו.
- בכרטיסייה Configuration מוצגת שאילתת ה-SQLX שנוצרה ומשויכת לצומת.
- בכרטיסייה תצוגה מקדימה של הנתונים מוצגת טבלת הקלט והפלט של הקובץ. כדי לראות תצוגה מקדימה של שינוי הנתונים דרך הצומת הזה, לוחצים על Run task כדי להריץ את המשימה עם או בלי תלות.
עריכה של פייפליין
כדי לערוך את פייפליין הנתונים באמצעות Data Engineering Agent, לוחצים על Ask agent ומזינים הנחיה שמציעה שינוי בפייפליין הנתונים.
בודקים את השינויים שהוצעו על ידי סוכן הנדסת הנתונים ולוחצים על החלה כדי להחיל את השינויים.
אפשר גם לערוך שאילתת SQLX באופן ידני. לשם כך, בוחרים בצומת של צינור הנתונים ואז לוחצים על פתיחה.
יצירת הוראות לסוכן Data Engineering
הוראות לסוכן הן הוראות בשפה טבעית לסוכן הנדסת הנתונים, שמאפשרות לכם לשמור הוראות קבועות כך שהסוכן יפעל לפי קבוצה של כללים מותאמים אישית ומוגדרים מראש. אם רוצים שהתוצאות של הסוכן יהיו עקביות בכל הארגון, למשל מבחינת מוסכמות שמות או כדי לאכוף מדריך סגנון, אפשר להשתמש בהוראות לסוכן.
אפשר ליצור קובץ הקשר GEMINI.MD כקובץ הוראות לסוכן הנדסת הנתונים. אתם יכולים ליצור קובצי הוראות לסוכן לשימוש בסביבת העבודה המקומית, או להשתמש באותם קובצי הוראות בכמה צינורות להעברת נתונים באמצעות מאגר חיצוני.
כדי ליצור הוראות לסוכן:
- בקטע Ask agent (שאלת סוכן), לוחצים על Pipeline instructions (הוראות לצינור).
- בחלונית ההוראות לצינור עיבוד הנתונים, לוחצים על יצירת קובץ הוראות.
בקובץ
GEMINI.MDשמופיע, מזינים את ההוראות בשפה טבעית.בדוגמה הבאה מוצג קובץ הוראות לסוכן עם כמה כללים:
1. All event-specific tables MUST be prefixed with `cs_event_`. 2. The primary key for any player activity table is a composite key of `player_id` and `event_timestamp_micros`. 3. Filter out any player actions where `mana_spent` is greater than `max_mana_pool`. This is considered a data anomaly.לוחצים על Save.
מידע על הדרך הטובה ביותר לבנות את קובצי ההוראות של הסוכן זמין במאמר שיטות מומלצות לעבודה עם קובצי הוראות לסוכן.
טעינת הוראות לסוכן ממאגר חיצוני
אתם יכולים לציין קבוצה של הוראות לסוכן לשימוש חוזר בכמה צינורות נתונים על ידי קישור למאגר חיצוני:
- בקטע Ask agent (שאלת סוכן), לוחצים על Pipeline instructions (הוראות לצינור).
- בקטע External repository (מאגר חיצוני), בוחרים באפשרות Use instructions from external repository (שימוש בהוראות ממאגר חיצוני).
- בשדות שמופיעים, מציינים מאגר שמכיל הוראות לנציג שרוצים להשתמש בהן בפייפליין.
- לוחצים על Save.
ייבוא קבצים מקומיים נוספים כהוראות לסוכן
אפשר גם לייבא קובצי הוראות אחרים של Data Engineering Agent לקובץ GEMINI.md באמצעות תחביר @file.md. מידע נוסף מופיע במאמר בנושא מעבד ייבוא הזיכרון.
פתרון בעיות בפייפליין נתונים
אם נתקלים בשגיאות במהלך יצירת פייפליין, צריך לוודא שביצעתם את כל הדרישות המוקדמות להפעלת הסוכן למהנדסי נתונים. מידע נוסף זמין במאמר לפני שמתחילים.
אם פייפליין הנתונים שנוצר נתקל בשגיאות, אתם יכולים להנחות את סוכן הנדסת הנתונים לאבחן כשלים בפייפליין הנתונים ולהציע המלצות לפתרון בעיות באמצעות השלבים הבאים:
- בצינור או בסביבת הפיתוח, לוחצים על הכרטיסייה Executions (הרצות).
ברשימת ההרצות, מחפשים את ההרצה של פייפליין הנתונים שנכשלה. אפשר לזהות ריצות שנכשלו בעמודה סטטוס של ריצת הביצוע.
מעבירים את העכבר מעל הסמל ולוחצים על חקירה. הסוכן Data Engineering מריץ ניתוח של הביצוע של פייפליין הנתונים כדי לזהות שגיאות.
כשהניתוח מסתיים, סוכן הנדסת הנתונים יוצר דוח בקטע תצפיות והיפותזה. הדוח הזה כולל:
- תצפיות ונקודות נתונים שחולצו מיומני ההרצה של פייפליין הנתונים
- סיבות אפשריות לכשל
- קבוצה של צעדים או המלצות לפתרון הבעיה שזוהתה
בעזרת דוח פתרון הבעיות של סוכן הנדסת הנתונים, אפשר ליישם את ההמלצות באופן ידני. אתם יכולים גם להנחות את הסוכן להנדסת נתונים לבצע את התיקון בשבילכם באופן הבא:
- מעתיקים את ההצעות בדוח לפתרון בעיות.
- חוזרים אל Data Engineering Agent:
- אם אתם משתמשים בצינורות נתונים של BigQuery, עוברים לדף של צינורות הנתונים ולוחצים על Ask agent (שאלת סוכן).
- אם אתם משתמשים ב-Dataform, לוחצים על Ask agent (שאלת סוכן).
- מדביקים את ההצעות בהנחיה ומנחים את סוכן הנדסת הנתונים לבצע את התיקונים ישירות בפייפליין הנתונים.
- לוחצים על שליחה.
הנחיות לדוגמה
בקטעים הבאים מופיעות כמה דוגמאות להנחיות שאפשר להשתמש בהן עם הסוכן Data Engineering Agent כדי לפתח את פייפליין הנתונים.
צבירה של נתונים קיימים בטבלה חדשה
בעזרת ההנחיה הזו, סוכן הנדסת הנתונים משתמש בסכימה ובדוגמאות כדי להסיק את קיבוץ הנתונים לפי מפתח. בדרך כלל, הסוכן מגדיר טבלה חדשה עם תיאורים של הטבלה והעמודות.
Create a daily sales report from the
bigquery-public-data.thelook_ecommerce.order_items table into a
reporting.daily_sales_aggregation table.
הוספת בדיקות של איכות הנתונים לטבלה קיימת
בעזרת ההנחיה הזו, הנציג מסיק בדיקות איכות סבירות לטבלה על סמך הסכימה והדוגמאות. אפשר גם להוסיף להנחיה טענות שמתבססות על דעה.
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
יצירת עמודה נגזרת חדשה והוספת בדיקות איכות נתונים לטבלה החדשה
בהנחיה הבאה אפשר לראות איך מוסיפים טבלה ועמודה, ומציינים בדיקות איכות לטבלה בו-זמנית.
Create a new table named staging.products from
bigquery-public-data.thelook_ecommerce.products and add a calculated column
named gross_profit, which is the retail_price minus the cost.
Also, add the following assertions: ID must not be null and must be unique.
The retail_price must be greater than or equal to the cost. The department
column can only contain 'Men' or 'Women'.
יצירת פונקציות UDF כחלק מהגדרת המודל
הסוכן Data Engineering יכול גם להגדיר את ה-DDL כדי ליצור פונקציות מוגדרות על ידי המשתמש (UDF). הסוכן לא ייצור בפועל את ה-UDF, אבל תוכלו ליצור את ה-UDF על ידי הפעלת פייפליין הנתונים. אפשר להשתמש בפונקציות UDF האלה בהגדרות של מודלים בפייפליין.
Create a user-defined function (UDF) named get_age_group that takes an integer
age as input and returns a string representing the age group ('Gen Z',
'Millennial', 'Gen X', 'Baby Boomer').
Use this UDF on the age column from the
bigquery-public-data.thelook_ecommerce.users table to create a new view called
reporting.user_age_demographics that includes user_id, age, and the calculated
age_group.
שיטות מומלצות
בקטעים הבאים מפורטות שיטות מומלצות לעבודה עם Data Engineering Agent ו-Dataform.
שיטות מומלצות לשימוש ב-Data Engineering Agent
שימוש בהוראות לסוכן לבקשות נפוצות. אם יש טכניקות שאתם משתמשים בהן לעיתים קרובות, או אם אתם מבצעים לעיתים קרובות את אותם תיקונים לסוכן, כדאי להשתמש בהוראות לסוכן כמקום מרכזי לאחסון הוראות ובקשות נפוצות.
לתת לנציג מידע נוסף. אפשר לתת לסוכן הקשר נוסף מתוך Dataplex Universal Catalog על ידי צירוף מונחים במילון מונחים לטבלאות ולעמודות ב-BigQuery ויצירת סריקות של פרופיל נתונים. אפשר להשתמש במונחים במילון המונחים כדי לתייג עמודות שנדרש להן הקשר נוסף, כמו עמודות שמכילות פרטים אישיים מזהים (PII) שנדרשות להן הוראות טיפול מיוחדות, או כדי לזהות עמודות תואמות עם שמות שונים בטבלאות שונות. סריקות של פרופיל הנתונים מספקות לסוכן הבנה טובה יותר של פיזור הנתונים בעמודות של טבלה, ויכולות לעזור לסוכן ליצור טענות ספציפיות יותר לגבי איכות הנתונים. מידע נוסף מופיע במאמר מידע על פרופיל נתונים.
כתיבה ברורה. חשוב לנסח את הבקשה בצורה ברורה ולא להשתמש בניסוחים מעורפלים. במידת האפשר, כשמתבקשים, מספקים מקורות נתונים של המקור ושל היעד, כמו בדוגמה הבאה:
Extract data from the sales.customers table in the us_west_1 region, and load
it into the reporting.dim_customers table in BigQuery. Match the schema of the
destination table.
הקפידו לתת בקשות ישירות וממוקדות. תשאלו שאלה אחת בכל פעם, ותקפידו על הנחיות תמציתיות. בהנחיות עם יותר משאלה אחת, אפשר לפרט כל חלק נפרד של השאלה כדי לשפר את הבהירות, כמו בדוגמה הבאה:
1. Create a new table named staging.events_cleaned. Use raw.events as the
source. This new table should filter out any records where the user_agent
matches the pattern '%bot%'. All original columns should be included.
2. Next, create a table named analytics.user_sessions. Use
staging.events_cleaned as the source. This table should calculate the
duration for each session by grouping by session_id and finding the
difference between the MAX(event_timestamp) and MIN(event_timestamp).
הקפידו לתת הוראות מפורשות ולהדגיש מונחים חשובים. אתם יכולים להדגיש מונחים או מושגים חשובים בהנחיות, ולציין דרישות מסוימות כחשובות, כמו בדוגמה הבאה:
When creating the staging.customers table, it is *VERY IMPORTANT* that you
transform the email column from the source table bronze.raw_customers.
Coalesce any NULL values in the email column to an empty string ''.
מציינים את סדר הפעולות. למשימות מסודרות, אפשר לבנות את ההנחיה ברשימות, שבהן הפריטים מחולקים לשלבים קטנים וממוקדים, כמו בדוגמה הבאה:
Create a pipeline with the following steps:
1. Extract data from the ecomm.orders table.
2. Join the extracted data with the marts.customers table on customer_id
3. Load the final result into the reporting.customer_orders table.
משפרים ומבצעים איטרציות. כדאי לנסות ניסוחים וגישות שונים כדי לראות מה מניב את התוצאות הכי טובות. אם הסוכן יוצר SQL לא תקין או שגיאות אחרות, אפשר להנחות אותו באמצעות דוגמאות או מסמכים שזמינים לציבור.
The previous query was incorrect because it removed the timestamp. Please
correct the SQL. Use the TIMESTAMP_TRUNC function to truncate the
event_timestamp to the nearest hour, instead of casting it as a DATE. For
example: TIMESTAMP_TRUNC(event_timestamp, HOUR).
שיטות מומלצות לשימוש בקובצי הוראות לסוכן
יוצרים קובצי הוראות לסוכן כדי להתאים אישית את סוכן הנדסת הנתונים לצרכים שלכם. כשמשתמשים בהוראות לסוכן, מומלץ:
- כל נתיבי הקבצים ב-Dataform הם יחסיים לשורש המאגר. כדי לייבא הוראות ל-
GEMINI.mdבצורה תקינה, צריך להשתמש בנתיבים יחסיים לכל תחביר@file.md. - קבצים שיובאו ב-
GEMINI.mdיכולים להכיל ייבוא בעצמם, וכך ליצור מבנה מקונן. כדי למנוע רקורסיה אינסופית,GEMINI.mdכולל עומק ייבוא מקסימלי של חמש רמות. - כדי לשתף הוראות בין צינורות עיבוד נתונים, מאחסנים את ההוראות במאגר מרכזי של Dataform ומקשרים אותן למאגר העבודה של Dataform. אתם יכולים להשתמש בהוראות מקומיות כדי לבטל כללים מרכזיים להתנהגות ספציפית של צינור.
- שימוש בכותרות וברשימות בקובץ ההוראות לסוכן יכול לעזור לארגן ולהבהיר את ההוראות לסוכן הנדסת הנתונים.
- כדאי לתת שמות משמעותיים לקבצים ולקבץ הוראות דומות בקובץ אחד. כדאי לארגן את הכללים באופן הגיוני לפי קטגוריה, תכונה או פונקציונליות באמצעות כותרות Markdown.
- כדי להימנע מהוראות סותרות, צריך להגדיר בבירור את התנאים הספציפיים שבהם כל הוראה חלה.
- משפרים את ההנחיות ואת תהליך העבודה. ההתנהגות של הסוכן משתנה לאורך זמן עם השקת סוכנים ושדרוגים של מודלים, לכן מומלץ לחזור על הכללים עם הנחיות שונות כדי לזהות תחומים שאולי צריך לשפר. חשוב לשמור על סנכרון בין קובץ הכללים לבין כל שינוי בפייפליין.
בדוגמה הבאה מוצג קובץ הוראות לסוכן בשם GEMINI.md שבו נעשה שימוש בשיטות המומלצות שלנו לשימוש יעיל בסוכן הנדסת הנתונים:
### Naming Conventions
* Datasets: [business_domain]_[use_case] (e.g., ecommerce_sales)
* Tables:
- Raw/External: raw_[source_name]
- Staging: stg_[business_entity]
- Dimension: dim_[dimension_name]
- Fact: fct_[fact_name]
* Dataform Folders:
- sources
- staging
- marts
- dataProducts
* Views: vw_[view_name]
* Columns: snake_case (e.g., order_id, customer_name)
## Cloud Storage data load
* When ingesting data from Cloud Storage, create external tables.
## Null handling
* Filter out null id values
## String normalization
* Standardize string columns by converting to lower case
## Data Cleaning Guidelines
@./generic_cleaning.md