כלי: query_compilation_actions
מחזירה את הפעולות של תוצאת ההידור (compilation) של Dataform.
ערך הפרמטר name צריך להיות בפורמט projects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}.
בדוגמת הקוד הבאה מוצג שימוש בפקודה curl כדי להפעיל את הכלי query_compilation_actions MCP.
| בקשת Curl |
|---|
curl --location 'https://dataform.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "query_compilation_actions", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
סכימת הקלט
QueryCompilationResultActions הזמנה לצ'אט.
QueryCompilationResultActionsRequest
| ייצוג JSON |
|---|
{ "name": string, "pageSize": integer, "pageToken": string, "filter": string } |
| שדות | |
|---|---|
name |
חובה. השם של תוצאת ההידור. |
pageSize |
זה שינוי אופציונלי. מספר התוצאות המקסימלי של הקומפילציה שיוחזרו. יכול להיות שהשרת יחזיר פחות פריטים מהמספר שצוין בבקשה. אם לא מציינים ערך, השרת יבחר ברירת מחדל מתאימה. |
pageToken |
זה שינוי אופציונלי. טוקן של דף שהתקבל מקריאה קודמת של כשמבצעים חלוקה לעמודים, כל הפרמטרים האחרים שסופקו ל- |
filter |
זה שינוי אופציונלי. מסנן אופציונלי לרשימה שמוחזרת. בשלב הזה, סינון נתמך רק בשדה |
סכימת הפלט
QueryCompilationResultActions הודעת תגובה.
QueryCompilationResultActionsResponse
| ייצוג JSON |
|---|
{
"compilationResultActions": [
{
object ( |
| שדות | |
|---|---|
compilationResultActions[] |
רשימה של פעולות שקשורות לתוצאות ההידור. |
nextPageToken |
טוקן שאפשר לשלוח כ- |
CompilationResultAction
| ייצוג JSON |
|---|
{ "target": { object ( |
| שדות | |
|---|---|
target |
המזהה של הפעולה הזו. ייחודי בתוצאת ההידור. |
canonicalTarget |
המזהה של הפעולה אם הפרויקט עבר קומפילציה בלי להגדיר החלפות. ייחודי בתוצאת ההידור. |
filePath |
הנתיב המלא כולל שם הקובץ שבו הפעולה הזו ממוקמת, ביחס לשורש של סביבת העבודה. |
שדה איחוד compiled_object. האובייקט שעבר קומפילציה. הערך compiled_object יכול להיות רק אחד מהבאים: |
|
relation |
הקשר בין מסדי הנתונים שנוצר או עודכן על ידי הפעולה הזו. |
operations |
פעולות מסד הנתונים שבוצעו על ידי הפעולה הזו. |
assertion |
הטענה שהופעלה על ידי הפעולה הזו. |
declaration |
ההצהרה שהוגדרה על ידי הפעולה הזו. |
notebook |
ה-notebook שהורץ על ידי הפעולה הזו. |
dataPreparation |
הכנת הנתונים שמתבצעת על ידי הפעולה הזו. |
שדה איחוד הערך |
|
internalMetadata |
פלט בלבד. כל פרטי המטא-נתונים שמשמשים באופן פנימי להצגת המשאב. לדוגמה: חותמות זמן, דגלים, שדות סטטוס וכו'. הפורמט של השדה הזה הוא מחרוזת JSON. |
קשר
| ייצוג JSON |
|---|
{ "dependencyTargets": [ { object ( |
| שדות | |
|---|---|
dependencyTargets[] |
רשימה של פעולות שהפעולה הזו תלויה בהן. |
disabled |
האם הפעולה הזו מושבתת (כלומר, לא אמורה לפעול). |
tags[] |
תגים שרירותיים שהמשתמש מגדיר לפעולה הזו. |
relationDescriptor |
תיאור של הקשר והעמודות שלו. |
relationType |
סוג הקשר. |
selectQuery |
שאילתת ה-SELECT שמחזירה את השורות שהקשר הזה צריך להכיל. |
preOperations[] |
הוראות SQL שיש להריץ לפני יצירת הקשר. |
postOperations[] |
הצהרות SQL שיבוצעו אחרי יצירת הקשר. |
incrementalTableConfig |
ההגדרה הזו קובעת את ההגדרות של |
partitionExpression |
ביטוי ה-SQL שמשמש לחלוקת היחס למחיצות. |
clusterExpressions[] |
רשימה של עמודות או ביטויי SQL שמשמשים לאשכול של הטבלה. |
partitionExpirationDays |
הגדרת תפוגת המחיצה בימים. |
requirePartitionFilter |
קובעת אם שאילתות בטבלה הזו צריכות לכלול מסנן predicate שמסנן לפי עמודת החלוקה למחיצות. |
additionalOptions |
אפשרויות נוספות שיועברו כצמדי מפתח/ערך לסעיף האפשרויות של הצהרת יצירת טבלה/תצוגה. מידע נוסף על האפשרויות הנתמכות זמין בכתובת https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language. אובייקט שמכיל רשימה של |
connection |
זה שינוי אופציונלי. החיבור שמציין את פרטי הכניסה שישמשו לקריאה וכתיבה באחסון חיצוני, כמו Cloud Storage. החיבור יכול להיות בפורמט |
tableFormat |
זה שינוי אופציונלי. פורמט הטבלה של הטבלה ב-BigQuery. |
fileFormat |
זה שינוי אופציונלי. פורמט הקובץ של הטבלה ב-BigQuery. |
storageUri |
זה שינוי אופציונלי. קידומת המיקום המלאה של התיקייה החיצונית שבה מאוחסנים נתוני הטבלה. ה-URI צריך להיות בפורמט |
יעד
| ייצוג JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| שדות | |
|---|---|
database |
זה שינוי אופציונלי. מסד הנתונים של הפעולה (מזהה הפרויקט ב-Google Cloud) . |
schema |
זה שינוי אופציונלי. הסכימה של הפעולה (מזהה מערך הנתונים ב-BigQuery), בתוך |
name |
זה שינוי אופציונלי. שם הפעולה, בתוך |
RelationDescriptor
| ייצוג JSON |
|---|
{
"description": string,
"columns": [
{
object ( |
| שדות | |
|---|---|
description |
תיאור טקסטואלי של הקשר. |
columns[] |
רשימה של תיאורי העמודות ביחס. |
bigqueryLabels |
קבוצה של תוויות BigQuery שצריך להחיל על הקשר. אובייקט שמכיל רשימה של |
ColumnDescriptor
| ייצוג JSON |
|---|
{ "path": [ string ], "description": string, "bigqueryPolicyTags": [ string ] } |
| שדות | |
|---|---|
path[] |
המזהה של העמודה. כל רשומה ב- |
description |
תיאור מילולי של העמודה. |
bigqueryPolicyTags[] |
רשימה של תגי מדיניות ב-BigQuery שיוחלו על העמודה. |
BigqueryLabelsEntry
| ייצוג JSON |
|---|
{ "key": string, "value": string } |
| שדות | |
|---|---|
key |
|
value |
|
IncrementalTableConfig
| ייצוג JSON |
|---|
{ "incrementalSelectQuery": string, "refreshDisabled": boolean, "uniqueKeyParts": [ string ], "updatePartitionFilter": string, "incrementalPreOperations": [ string ], "incrementalPostOperations": [ string ] } |
| שדות | |
|---|---|
incrementalSelectQuery |
שאילתת ה-SELECT שמחזירה שורות שצריך להוסיף לקשר אם הוא כבר קיים ולא מתבצע בו רענון. |
refreshDisabled |
האם הטבלה הזו צריכה להיות מוגנת מפני רענון. |
uniqueKeyParts[] |
קבוצה של עמודות או ביטויי SQL שמשמשים להגדרת הייחודיות של השורה. אם נמצאו כפילויות (כפי שמוגדר על ידי |
updatePartitionFilter |
ביטוי SQL מותנה שמשמש להגבלת קבוצת השורות הקיימות שנלקחות בחשבון בפעולת מיזוג (מידע נוסף מופיע בקטע |
incrementalPreOperations[] |
הצהרות SQL שיש להריץ לפני הוספת שורות חדשות ליחס. |
incrementalPostOperations[] |
הצהרות SQL שיבוצעו אחרי הוספת שורות חדשות ליחס. |
AdditionalOptionsEntry
| ייצוג JSON |
|---|
{ "key": string, "value": string } |
| שדות | |
|---|---|
key |
|
value |
|
תפעול
| ייצוג JSON |
|---|
{ "dependencyTargets": [ { object ( |
| שדות | |
|---|---|
dependencyTargets[] |
רשימה של פעולות שהפעולה הזו תלויה בהן. |
disabled |
האם הפעולה הזו מושבתת (כלומר, לא אמורה לפעול). |
tags[] |
תגים שרירותיים שהמשתמש מגדיר לפעולה הזו. |
relationDescriptor |
מתאר של כל יחס פלט והעמודות שלו. הגדרה אפשרית רק אם |
queries[] |
רשימה של הצהרות SQL שרירותיות שיופעלו ללא שינוי. |
hasOutput |
אם הפעולות האלה יוצרות יחס פלט. |
טענת נכוֹנוּת (assertion
| ייצוג JSON |
|---|
{ "dependencyTargets": [ { object ( |
| שדות | |
|---|---|
dependencyTargets[] |
רשימה של פעולות שהפעולה הזו תלויה בהן. |
parentAction |
פעולת ההורה של הטענה הזו. צריך להגדיר רק אם הטענה הזו נוצרה באופן אוטומטי. |
disabled |
האם הפעולה הזו מושבתת (כלומר, לא אמורה לפעול). |
tags[] |
תגים שרירותיים שהמשתמש מגדיר לפעולה הזו. |
selectQuery |
שאילתת ה-SELECT שצריכה להחזיר אפס שורות כדי שהטענה הזו תצליח. |
relationDescriptor |
תיאור של התצוגה שנוצרה אוטומטית של האסרטיב והעמודות שלה. |
הצהרה
| ייצוג JSON |
|---|
{
"relationDescriptor": {
object ( |
| שדות | |
|---|---|
relationDescriptor |
תיאור של הקשר והעמודות שלו. השימוש הוא רק לצורך תיעוד, כלומר הערכים כאן לא יגרמו לשינויים במטא-נתונים של הקשר. |
Notebook
| ייצוג JSON |
|---|
{
"dependencyTargets": [
{
object ( |
| שדות | |
|---|---|
dependencyTargets[] |
רשימה של פעולות שהפעולה הזו תלויה בהן. |
disabled |
האם הפעולה הזו מושבתת (כלומר, לא אמורה לפעול). |
contents |
התוכן של ה-Notebook. |
tags[] |
תגים שרירותיים שהמשתמש מגדיר לפעולה הזו. |
DataPreparation
| ייצוג JSON |
|---|
{ "dependencyTargets": [ { object ( |
| שדות | |
|---|---|
dependencyTargets[] |
רשימה של פעולות שהפעולה הזו תלויה בהן. |
disabled |
האם הפעולה הזו מושבתת (כלומר, לא אמורה לפעול). |
tags[] |
תגים שרירותיים שהמשתמש מגדיר לפעולה הזו. |
שדה איחוד definition. ההגדרה של הכנת הנתונים. הערך definition יכול להיות רק אחד מהבאים: |
|
contentsYaml |
ההגדרה של הכנת הנתונים, מאוחסנת כמחרוזת YAML. |
contentsSql |
הגדרת SQL להכנת נתונים. מכילה שאילתת SQL ומידע נוסף על ההקשר. |
SqlDefinition
| ייצוג JSON |
|---|
{ "query": string, "errorTable": { object ( |
| שדות | |
|---|---|
query |
שאילתת ה-SQL שמייצגת את השלבים של הכנת הנתונים. מעוצב כהצהרת שאילתת SQL עם קו אנכי. |
errorTable |
שגיאה בהגדרת הטבלה, |
load |
טוענים את ההגדרות. |
ErrorTable
| ייצוג JSON |
|---|
{
"target": {
object ( |
| שדות | |
|---|---|
target |
שגיאה בטבלת היעד. |
retentionDays |
תוקף החלוקה של הטבלה למחיצות בימים. אפשר להשתמש רק בערכים חיוביים. |
LoadConfig
| ייצוג JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד mode. הערך של מצב הטעינה mode יכול להיות רק אחד מהבאים: |
|
replace |
החלפת טבלת היעד |
append |
הוספה לטבלת היעד |
maximum |
הוספת רשומות שבהן הערך גבוה מהערך המקסימלי הקודם בעמודה בטבלת היעד |
unique |
הוספת רשומות שבהן הערך של עמודה מסוימת לא מופיע כבר בטבלת היעד |
IncrementalLoadMode
| ייצוג JSON |
|---|
{ "column": string } |
| שדות | |
|---|---|
column |
שם העמודה במצבי טעינה מצטברת |
RelationType
מציין את סוג הקשר.
| טיפוסים בני מנייה (enum) | |
|---|---|
RELATION_TYPE_UNSPECIFIED |
ערך ברירת המחדל. הערך הזה לא בשימוש. |
TABLE |
הקשר הוא טבלה. |
VIEW |
הקשר הוא תצוגה. |
INCREMENTAL_TABLE |
הקשר הוא טבלה מצטברת. |
MATERIALIZED_VIEW |
הקשר הוא תצוגה מהותית. |
TableFormat
פורמטים נתמכים של טבלאות ב-BigQuery.
| טיפוסים בני מנייה (enum) | |
|---|---|
TABLE_FORMAT_UNSPECIFIED |
ערך ברירת המחדל. |
ICEBERG |
פורמט Apache Iceberg. |
FileFormat
פורמטים נתמכים של קבצים לטבלאות ב-BigQuery.
| טיפוסים בני מנייה (enum) | |
|---|---|
FILE_FORMAT_UNSPECIFIED |
ערך ברירת המחדל. |
PARQUET |
פורמט Apache Parquet. |
הערות על כלים
הערות על כלים נשלחות ללקוחות MCP כדי לתאר את הסיכון הבסיסי של כלי נתון. רוב הלקוחות מתייחסים לרמזים האלה כאל רמזים לא מהימנים, אבל אפשר להשתמש בהם כדי להחליט מתי לשלוח למשתמש הנחיה לאישור.
בנוסף למחרוזת הכותרת, מוגדרים הרמזים הבוליאניים הבאים:
-
readOnlyHint: אם הערך הוא true, הכלי לא משנה את הסביבה שלו. ברירת מחדל: false. -
destructiveHint: אם הערך הוא True, הכלי יכול לבצע פעולות הרסניות. אם הערך הוא false, הכלי יכול לבצע רק פעולות של הוספה. ברירת מחדל: true. -
idempotentHint: אם הערך הוא true, קריאה חוזרת לכלי עם אותם ארגומנטים לא תשפיע על הסביבה שלו. ברירת מחדל: false. -
openWorldHint: אם הערך הוא true, הכלי יכול ליצור אינטראקציה עם 'עולם פתוח' של ישויות חיצוניות. אם הערך הוא false, הכלי יכול ליצור אינטראקציה רק עם ישויות פנימיות. לדוגמה, כלי לחיפוש באינטרנט יהיה עולם פתוח, אבל כלי לזיכרון לא יהיה עולם פתוח.
רמז הרסני: ❌ | רמז אידמפוטנטי: ✅ | רמז לקריאה בלבד: ✅ | רמז לעולם פתוח: ❌