MCP Tools Reference: bigquery.googleapis.com

Alat: execute_sql

Jalankan kueri SQL dalam project dan tampilkan hasilnya. Sebaiknya gunakan alat execute_sql_readonly jika memungkinkan.

Alat ini dapat menjalankan kueri apa pun yang didukung BigQuery, termasuk: * Kueri SQL (SELECT, INSERT, UPDATE, DELETE, CREATE, dll.) * Fungsi AI/ML seperti AI.FORECAST, ML.EVALUATE, ML.PREDICT * Kueri lain yang didukung BigQuery.

Kueri yang dijalankan menggunakan alat execute_sql akan otomatis menetapkan label tugas goog-mcp-server: true. Kueri ditagih ke project yang ditentukan di kolom project_id.

Contoh berikut menunjukkan cara menggunakan curl untuk memanggil alat MCP execute_sql.

Permintaan Curl
                  
curl --location 'https://bigquery.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "execute_sql",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Skema Input

Menjalankan kueri SQL BigQuery secara serentak dan menampilkan hasil kueri jika kueri selesai dalam waktu tunggu yang ditentukan.

QueryRequest

Representasi JSON
{
  "projectId": string,
  "query": string,
  "dryRun": boolean
}
Kolom
projectId

string

Wajib. Project yang akan digunakan untuk eksekusi kueri dan penagihan.

query

string

Wajib. Kueri yang akan dijalankan dalam bentuk kueri GoogleSQL.

dryRun

boolean

Opsional. Jika disetel ke benar (true), BigQuery tidak menjalankan tugas. Sebagai gantinya, jika kueri valid, BigQuery akan menampilkan statistik tentang tugas tersebut, seperti jumlah byte yang akan diproses. Jika kueri tidak valid, error akan ditampilkan. Nilai defaultnya adalah false.

Skema Output

Respons untuk kueri SQL BigQuery.

QueryResponse

Representasi JSON
{
  "schema": {
    object (TableSchema)
  },
  "rows": [
    {
      object
    }
  ],
  "jobComplete": boolean,
  "errors": [
    {
      object (ErrorProto)
    }
  ],
  "queryId": string,
  "totalBytesBilled": string,
  "totalSlotMs": string,
  "numDmlAffectedRows": string,
  "totalBytesProcessed": string
}
Kolom
schema

object (TableSchema)

Skema hasil. Hanya ada jika kueri berhasil diselesaikan.

rows[]

object (Struct format)

Objek dengan hasil sebanyak yang dapat dimuat dalam ukuran respons maksimum yang diizinkan. Untuk mendapatkan baris tambahan, Anda dapat memanggil GetQueryResults dan menentukan jobReference yang ditampilkan di atas.

jobComplete

boolean

Apakah kueri telah selesai atau belum. Jika rows atau totalRows ada, nilai ini akan selalu benar. Jika salah (false), totalRows tidak akan tersedia.

errors[]

object (ErrorProto)

Hanya output. Error atau peringatan pertama yang terjadi selama menjalankan tugas. Pesan akhir mencakup jumlah error yang menyebabkan proses berhenti. Error di sini tidak berarti bahwa tugas telah selesai atau tidak berhasil. Untuk mengetahui informasi selengkapnya tentang pesan error, lihat Pesan error.

queryId

string

Hanya output. ID kueri.

totalBytesBilled

string (Int64Value format)

Hanya output. Jumlah total byte yang ditagih untuk kueri. Hanya berlaku jika project dikonfigurasi untuk menggunakan harga sesuai permintaan.

totalSlotMs

string (Int64Value format)

Hanya output. Jumlah ms slot yang sebenarnya ditagih kepada pengguna.

numDmlAffectedRows

string (Int64Value format)

Hanya output. Jumlah baris yang terpengaruh oleh pernyataan DML.

totalBytesProcessed

string (Int64Value format)

Hanya output. Total jumlah byte yang diproses untuk kueri ini.

TableSchema

Representasi JSON
{
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "foreignTypeInfo": {
    object (ForeignTypeInfo)
  }
}
Kolom
fields[]

object (TableFieldSchema)

Menjelaskan kolom dalam tabel.

foreignTypeInfo

object (ForeignTypeInfo)

Opsional. Menentukan metadata definisi jenis data asing dalam skema kolom (TableFieldSchema.foreign_type_definition).

TableFieldSchema

Representasi JSON
{
  "name": string,
  "type": string,
  "mode": string,
  "fields": [
    {
      object (TableFieldSchema)
    }
  ],
  "description": string,
  "policyTags": {
    object (PolicyTagList)
  },
  "dataPolicies": [
    {
      object (DataPolicyOption)
    }
  ],
  "maxLength": string,
  "precision": string,
  "scale": string,
  "timestampPrecision": string,
  "roundingMode": enum (RoundingMode),
  "collation": string,
  "defaultValueExpression": string,
  "rangeElementType": {
    object (FieldElementType)
  },
  "foreignTypeDefinition": string,
  "generatedColumn": {
    object (GeneratedColumn)
  }
}
Kolom
name

string

Wajib. Nama kolom. Nama hanya boleh berisi huruf (a-z, A-Z), angka (0-9), atau garis bawah (_), dan harus diawali dengan huruf atau garis bawah. Panjang maksimum adalah 300 karakter.

type

string

Wajib. Jenis data kolom. Nilai yang memungkinkan mencakup:

  • STRING
  • BYTES
  • INTEGER (atau INT64)
  • FLOAT (atau FLOAT64)
  • BOOLEAN (atau BOOL)
  • TIMESTAMP
  • DATE
  • WAKTU
  • DATETIME
  • GEOGRAPHY
  • NUMERIC
  • BIGNUMERIC
  • JSON
  • RECORD (atau STRUCT)
  • RANGE

Penggunaan RECORD/STRUCT menunjukkan bahwa kolom berisi skema bertingkat.

mode

string

Opsional. Mode kolom. Nilai yang mungkin mencakup NULLABLE, REQUIRED, dan REPEATED. Nilai defaultnya adalah NULLABLE.

fields[]

object (TableFieldSchema)

Opsional. Menjelaskan kolom skema bertingkat jika properti jenis ditetapkan ke RECORD.

description

string

Opsional. Deskripsi kolom. Panjang maksimumnya adalah 1.024 karakter.

policyTags

object (PolicyTagList)

Opsional. Tag kebijakan yang dilampirkan ke kolom ini, digunakan untuk kontrol akses tingkat kolom. Jika tidak disetel, default-nya adalah policy_tags kosong.

dataPolicies[]

object (DataPolicyOption)

Opsional. Kebijakan data yang dilampirkan ke kolom ini, digunakan untuk kontrol akses tingkat kolom.

maxLength

string (int64 format)

Opsional. Panjang maksimum nilai kolom ini untuk STRING atau BYTE.

Jika max_length tidak ditentukan, tidak ada batasan panjang maksimum yang diterapkan pada kolom ini.

Jika type = "STRING", maka max_length mewakili panjang UTF-8 maksimum string di kolom ini.

Jika type = "BYTES", maka max_length mewakili jumlah maksimum byte dalam kolom ini.

Kolom ini tidak boleh ditetapkan jika type ≠ "STRING" dan ≠ "BYTES".

precision

string (int64 format)

Opsional. Batasan presisi (jumlah maksimum total digit dalam basis 10) dan skala (jumlah maksimum digit dalam bagian pecahan dalam basis 10) untuk nilai kolom ini untuk NUMERIC atau BIGNUMERIC.

Setelan presisi atau skala tidak valid jika jenis ≠ "NUMERIC" dan ≠ "BIGNUMERIC".

Jika presisi dan skala tidak ditentukan, tidak ada batasan rentang nilai yang diterapkan pada kolom ini selama nilai diizinkan oleh jenisnya.

Nilai kolom NUMERIC atau BIGNUMERIC ini harus berada dalam rentang ini jika:

  • Presisi (P) dan skala (S) ditentukan: [-10P-S + 10-S, 10P-S - 10-S]
  • Presisi (P) ditentukan, tetapi tidak dengan skala (sehingga skala ditafsirkan sama dengan nol): [-10P + 1, 10P - 1].

Nilai presisi dan skala yang dapat diterima jika keduanya ditentukan:

  • Jika type = "NUMERIC": 1 ≤ presisi - skala ≤ 29 dan 0 ≤ skala ≤ 9.
  • Jika type = "BIGNUMERIC": 1 ≤ presisi - skala ≤ 38 dan 0 ≤ skala ≤ 38.

Nilai presisi yang dapat diterima jika hanya presisi yang ditentukan, tetapi bukan skala (sehingga skala ditafsirkan sama dengan nol):

  • Jika type = "NUMERIC": 1 ≤ presisi ≤ 29.
  • Jika type = "BIGNUMERIC": 1 ≤ presisi ≤ 38.

Jika skala ditentukan tetapi tidak presisi, maka tidak valid.

scale

string (int64 format)

Opsional. Lihat dokumentasi untuk presisi.

timestampPrecision

string (Int64Value format)

Opsional. Presisi (jumlah maksimum total digit dalam basis 10) untuk detik jenis TIMESTAMP.

Nilai yang mungkin mencakup: * 6 (Default, untuk jenis TIMESTAMP dengan presisi mikrodetik) * 12 (Untuk jenis TIMESTAMP dengan presisi pikodetik)

roundingMode

enum (RoundingMode)

Opsional. Menentukan mode pembulatan yang akan digunakan saat menyimpan nilai jenis NUMERIC dan BIGNUMERIC.

collation

string

Opsional. Kolasi kolom hanya dapat ditetapkan jika jenis kolom adalah STRING. Nilai-nilai berikut didukung:

  • 'und:ci': lokalitas tidak ditentukan, tidak peka huruf besar/kecil.
  • '': string kosong. Default ke perilaku peka huruf besar/kecil.
defaultValueExpression

string

Opsional. Ekspresi SQL untuk menentukan nilai default untuk kolom ini.

rangeElementType

object (FieldElementType)

Opsional. Subjenis RANGE, jika jenis kolom ini adalah RANGE. Jika jenisnya adalah RANGE, kolom ini wajib diisi. Nilai untuk jenis elemen kolom dapat berupa berikut ini:

  • DATE
  • DATETIME
  • TIMESTAMP
foreignTypeDefinition

string

Opsional. Definisi jenis data asing. Hanya valid untuk kolom skema tingkat teratas (bukan kolom bertingkat). Jika jenisnya adalah ASING, kolom ini wajib diisi.

generatedColumn

object (GeneratedColumn)

Opsional. Definisi cara nilai dihasilkan untuk kolom. Hanya valid untuk kolom skema tingkat teratas (bukan kolom bertingkat).

StringValue

Representasi JSON
{
  "value": string
}
Kolom
value

string

Nilai string.

PolicyTagList

Representasi JSON
{
  "names": [
    string
  ]
}
Kolom
names[]

string

Daftar nama resource tag kebijakan. Misalnya, "projects/1/locations/eu/taxonomies/2/policyTags/3". Saat ini hanya boleh ada maksimal 1 tag kebijakan.

DataPolicyOption

Representasi JSON
{

  // Union field _name can be only one of the following:
  "name": string
  // End of list of possible types for union field _name.
}
Kolom

Kolom union _name.

_name hanya dapat berupa salah satu dari hal berikut:

name

string

Nama resource kebijakan data dalam bentuk projects/project_id/locations/location_id/dataPolicies/data_policy_id.

Int64Value

Representasi JSON
{
  "value": string
}
Kolom
value

string (int64 format)

Nilai int64.

FieldElementType

Representasi JSON
{
  "type": string
}
Kolom
type

string

Wajib. Jenis elemen kolom. Untuk informasi selengkapnya, lihat TableFieldSchema.type.

GeneratedColumn

Representasi JSON
{

  // Union field _generated_mode can be only one of the following:
  "generatedMode": enum (GeneratedMode)
  // End of list of possible types for union field _generated_mode.

  // Union field definition can be only one of the following:
  "generatedExpressionInfo": {
    object (GeneratedExpressionInfo)
  }
  // End of list of possible types for union field definition.
}
Kolom

Kolom union _generated_mode.

_generated_mode hanya dapat berupa salah satu dari hal berikut:

generatedMode

enum (GeneratedMode)

Opsional. Menentukan kapan nilai yang dihasilkan sistem digunakan untuk mengisi kolom.

Kolom union definition.

definition hanya dapat berupa salah satu dari hal berikut:

generatedExpressionInfo

object (GeneratedExpressionInfo)

Definisi ekspresi yang digunakan untuk membuat kolom.

GeneratedExpressionInfo

Representasi JSON
{

  // Union field _generation_expression can be only one of the following:
  "generationExpression": string
  // End of list of possible types for union field _generation_expression.

  // Union field _asynchronous can be only one of the following:
  "asynchronous": boolean
  // End of list of possible types for union field _asynchronous.

  // Union field _stored can be only one of the following:
  "stored": boolean
  // End of list of possible types for union field _stored.
}
Kolom

Kolom union _generation_expression.

_generation_expression hanya dapat berupa salah satu dari hal berikut:

generationExpression

string

Opsional. Ekspresi pembuatan (misalnya, AI.EMBED(...)) yang digunakan untuk membuat kolom.

Kolom union _asynchronous.

_asynchronous hanya dapat berupa salah satu dari hal berikut:

asynchronous

boolean

Opsional. Apakah pembuatan kolom dilakukan secara asinkron.

Kolom union _stored.

_stored hanya dapat berupa salah satu dari hal berikut:

stored

boolean

Opsional. Apakah kolom yang dibuat disimpan dalam tabel.

ForeignTypeInfo

Representasi JSON
{
  "typeSystem": enum (TypeSystem)
}
Kolom
typeSystem

enum (TypeSystem)

Wajib. Menentukan sistem yang menentukan jenis data asing.

Struct

Representasi JSON
{
  "fields": {
    string: value,
    ...
  }
}
Kolom
fields

map (key: string, value: value (Value format))

Peta tidak berurutan dari nilai yang diketik secara dinamis.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Representasi JSON
{
  "key": string,
  "value": value
}
Kolom
key

string

value

value (Value format)

Nilai

Representasi JSON
{

  // Union field kind can be only one of the following:
  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
  // End of list of possible types for union field kind.
}
Kolom
Kolom union kind. Jenis nilai. kind hanya ada berupa salah satu diantara berikut:
nullValue

null

Mewakili null JSON.

numberValue

number

Mewakili angka JSON. Tidak boleh NaN, Infinity, atau -Infinity, karena tidak didukung dalam JSON. Hal ini juga tidak dapat merepresentasikan nilai Int64 yang besar, karena format JSON umumnya tidak mendukungnya dalam jenis angka.

stringValue

string

Mewakili string JSON.

boolValue

boolean

Mewakili boolean JSON (literal true atau false dalam JSON).

structValue

object (Struct format)

Mewakili objek JSON.

listValue

array (ListValue format)

Mewakili array JSON.

ListValue

Representasi JSON
{
  "values": [
    value
  ]
}
Kolom
values[]

value (Value format)

Kolom berulang dari nilai yang diketik secara dinamis.

BoolValue

Representasi JSON
{
  "value": boolean
}
Kolom
value

boolean

Nilai bool.

ErrorProto

Representasi JSON
{
  "reason": string,
  "location": string,
  "debugInfo": string,
  "message": string
}
Kolom
reason

string

Kode error singkat yang merangkum error.

location

string

Menentukan tempat terjadinya error, jika ada.

debugInfo

string

Informasi proses debug. Properti ini bersifat internal untuk Google dan tidak boleh digunakan.

message

string

Deskripsi error yang dapat dibaca manusia.

Anotasi Alat

Petunjuk Destruktif: ✅ | Petunjuk Idempoten: ❌ | Petunjuk Hanya Baca: ❌ | Petunjuk Dunia Terbuka: ✅