Dokumen ini menjelaskan metode, properti, dan opsi konfigurasi inti Dataform. Anda dapat menggunakan Dataform core dalam file SQLX dan JavaScript.
assert()
assert
|
(name: string, query?: AContextable
|
Menambahkan pernyataan Dataform grafik yang dikompilasi. Hanya tersedia di direktori |
Contoh:
// definitions/file.js
assert("name").query(ctx => "select 1");
CommonContext
Metode konteks tersedia saat mengevaluasi kode SQL yang dapat konteks,
seperti dalam file SQLX, atau saat menggunakan
argumen Contextable
dengan inti Dataform.
database
|
() => string
|
Menampilkan database set data ini, jika berlaku. | |
name
|
() => string
|
Menampilkan nama tabel ini. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Mereferensikan tindakan lain, menambahkannya sebagai dependensi untuk tindakan ini,
yang menampilkan SQL valid untuk digunakan dalam ekspresi from .
Fungsi ini dapat dipanggil dengan objek
Fungsi ini juga dapat dipanggil menggunakan argumen individual untuk nilai
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Serupa dengan ref , tetapi tidak menambahkan tindakan yang direferensikan sebagai dependensi untuk tindakan ini.
|
|
self
|
() => string
|
Setara dengan resolve(name()) .
Menampilkan string SQL valid yang dapat digunakan untuk mereferensikan tabel yang dihasilkan oleh tindakan ini. |
|
schema
|
() => string
|
Menampilkan skema set data ini. |
{i>Contextable <i}(Dapat konteks)
Argumen kontekstual dapat meneruskan nilai biasa untuk jenis generiknya
T
atau fungsi yang dipanggil dengan objek konteks untuk
jenis operasi ini.
T | (ctx: Context) => T
Dataform
Variabel global yang berisi objek IProjectConfig.
Wajib untuk mendapatkan properti IProjectConfig
, misalnya:
dataform.projectConfig.vars.myVariableName === "myVariableValue"
mendeklarasikan()
declare
|
(dataset: dataform.ITarget)
|
Mendeklarasikan set data sebagai sumber data Formulir data. Hanya tersedia di direktori/definitions .
|
Contoh:
// definitions/file.js
declare({name: "a-declaration"})
IActionConfig
Menentukan Tag dataform dan dependensi yang diterapkan ke tindakan alur kerja SQL.
tags
|
string[]
|
Daftar tag buatan pengguna yang akan diberi label pada tindakan. |
|
dependencies
|
Resolvable| Resolvable[]
|
Dependensi tindakan. |
|
disabled
|
boolean
|
Jika disetel ke benar (true), tindakan ini tidak akan dijalankan. Namun, tindakan tersebut masih dapat diandalkan. Berguna untuk menonaktifkan tindakan yang rusak untuk sementara. |
IAssertionConfig
Opsi konfigurasi untuk jenis tindakan assertion
.
database
|
string
|
Database (project ID Google Cloud) yang digunakan untuk membuat tampilan yang sesuai untuk pernyataan ini. | |
description
|
string
|
Deskripsi pernyataan ini. | |
disabled
|
boolean
|
Jika ditetapkan ke true , tindakan ini tidak akan dijalankan.
Tindakan masih dapat diandalkan. Berguna untuk menonaktifkan tindakan yang rusak untuk sementara.
|
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis. Suatu tindakan bersifat hermetis jika semua dependensinya dideklarasikan secara eksplisit.
Jika tindakan ini bergantung pada data dari sumber yang tidak dideklarasikan
sebagai dependensi, tetapkan |
|
schema
|
string
|
Skema (set data BigQuery) yang digunakan untuk membuat tampilan yang sesuai untuk pernyataan ini. | |
tags
|
string[]
|
Daftar tag buatan pengguna yang diterapkan ke tindakan ini. |
IBigQueryOptions
Opsi warehouse khusus BigQuery.
additionalOptions
|
|
Pasangan nilai kunci untuk opsi tabel, tampilan,
dan tampilan terwujud.
Beberapa opsi, misalnya
Nilai string harus digabungkan dengan tanda kutip ganda, misalnya:
Jika nama opsi berisi karakter khusus, enkapsulasi nama dalam tanda kutip,
misalnya: |
|
clusterBy
|
string[]
|
Kunci yang digunakan untuk membuat partisi cluster. | |
labels
|
|
Pasangan nilai kunci untuk label BigQuery.
Jika nama label berisi karakter khusus, misalnya tanda hubung, kutip namanya, misalnya |
|
partitionBy
|
string
|
Kunci yang digunakan untuk mempartisi tabel. Biasanya berupa nama stempel waktu atau kolom tanggal. | |
partitionExpirationDays
|
number
|
Jumlah hari BigQuery untuk menyimpan data di setiap partisi. Setelan ini berlaku untuk semua partisi dalam tabel, tetapi dihitung secara terpisah untuk setiap partisi berdasarkan waktu partisi. | |
requirePartitionFilter
|
boolean
|
Mendeklarasikan apakah tabel yang dipartisi memerlukan filter predikat klausa WHERE yang memfilter kolom partisi.
|
|
updatePartitionFilter
|
string
|
Filter berbasis SQL saat update inkremental diterapkan. |
IColumnsDescriptor
Menjelaskan kolom dalam tabel.
{ [name]: string | IRecordDescriptor }
IDeclarationConfig
Opsi konfigurasi untuk jenis tindakan declaration
.
columns
|
IColumnsDescriptor
|
Deskripsi kolom dalam tabel. | |
database
|
string
|
Database (project ID Google Cloud) yang digunakan untuk membuat tabel sumber. | |
description
|
string
|
Deskripsi tabel. | |
schema
|
string
|
Skema (set data BigQuery) yang berisi tabel sumber. |
IDependenciesConfig
Menentukan dependensi tindakan alur kerja SQL.
dependencies
|
Resolvable| Resolvable[]
|
Satu atau beberapa dependensi eksplisit untuk tindakan ini. Tindakan dependensi akan berjalan sebelum tindakan dependen.
Biasanya hal ini tidak disetel, karena sebagian besar dependensi dideklarasikan
sebagai produk sampingan dari penggunaan fungsi |
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis atau tidak. Suatu tindakan bersifat hermetis jika semua dependensinya dideklarasikan secara eksplisit. Jika tindakan ini bergantung pada
data dari sumber yang belum dideklarasikan sebagai dependensi, |
IDocumentableConfig
Menentukan deskripsi dari set data dan kolomnya.
columns
|
IColumnsDescriptor
|
Deskripsi kolom dalam {i>dataset<i}. |
|
description
|
string
|
Deskripsi set data. |
INamedConfig
Menentukan jenis dan nama tindakan alur kerja SQL.
type
|
string
|
Jenis tindakan. |
|
name
|
string
|
Nama tindakan. |
IOperationConfig
Opsi konfigurasi untuk jenis tindakan operations
.
columns
|
IColumnsDescriptor
|
Deskripsi kolom dalam tabel. | |
database
|
string
|
Database (project ID Google Cloud) tempat membuat output tindakan ini. | |
description
|
string
|
Deskripsi tabel. | |
disabled
|
boolean
|
Jika ditetapkan ke true , tindakan ini tidak akan dijalankan.
Tindakan masih dapat diandalkan.
Berguna untuk menonaktifkan tindakan yang rusak untuk sementara.
|
|
hasOutput
|
boolean
|
Mendeklarasikan bahwa tindakan operations ini akan membuat tabel yang dapat direferensikan menggunakan fungsi ref .
Jika ditetapkan ke
Contoh:
|
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis. Suatu tindakan bersifat hermetis jika semua dependensinya dideklarasikan secara eksplisit.
Jika tindakan ini bergantung pada data dari sumber yang tidak dideklarasikan
sebagai dependensi, tetapkan |
|
schema
|
string
|
Skema (set data BigQuery) yang digunakan untuk membuat output tindakan ini. | |
tags
|
string[]
|
Daftar tag buatan pengguna yang diterapkan ke tindakan ini. |
IProjectConfig
Berisi setelan kompilasi repositori Dataform.
defaultDatabase
|
string
|
Wajib. Database default (ID project Google Cloud). | |
defaultSchema
|
string
|
Wajib. Skema default (ID set data BigQuery). | |
defaultLocation
|
string
|
Wajib. Lokasi BigQuery default yang akan digunakan. Untuk mengetahui informasi selengkapnya tentang lokasi BigQuery, lihat https://cloud.google.com/bigquery/docs/locations. | |
assertionSchema
|
string
|
Wajib. Skema default (ID set data BigQuery) untuk pernyataan. | |
vars
|
map (key: string, value: string)
|
Opsional. Variabel buatan pengguna yang tersedia untuk kode project selama kompilasi.
Objek yang berisi daftar pasangan "key": value .
Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" } .
|
|
databaseSuffix
|
string
|
Opsional. Akhiran yang harus ditambahkan ke semua nama database (project ID Google Cloud). | |
schemaSuffix
|
string
|
Opsional. Akhiran yang harus ditambahkan ke semua nama skema (ID set data BigQuery). | |
tablePrefix
|
string
|
Opsional. Awalan yang harus ditambahkan di depan semua nama tabel. | |
warehouse
|
string
|
Wajib. Harus ditetapkan ke bigquery .
|
Anda dapat menetapkan properti IProjectConfig
di dataform.json
pada level repositori.
Anda dapat mengganti properti defaultSchema
dan defaultDatabase
untuk masing-masing tabel.
Anda dapat mengakses semua properti IProjectConfig
dalam pernyataan SELECT
SQL
dalam file SQLX atau JavaScript.
Contoh kode berikut menunjukkan variabel kompilasi kustom myVariableName
yang ditetapkan di dataform.json
dengan properti projectConfig.vars
,
yang diakses di pernyataan SELECT
dalam file SQLX:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Untuk mengetahui informasi selengkapnya tentang cara mengganti setelan konfigurasi project
untuk setiap hasil kompilasi, lihat
resource REST projects.locations.repositories.compilationResults#CodeCompilationConfig
di
Dataform API.
IRecordDescriptor
Menjelaskan struct, objek, atau catatan dalam tabel yang memiliki kolom bertingkat.
bigqueryPolicyTags
|
string | string[]
|
ID lengkap tag kebijakan BigQuery diterapkan pada kolom ini. ID lengkap tag kebijakan BigQuery mencakup nama, lokasi, dan taksonomi project,
Contoh: Saat ini, BigQuery mendukung satu tag per kolom. |
|
columns
|
IColumnsDescriptor
|
Deskripsi kolom dalam struct, objek, atau catatan. | |
description
|
string
|
Deskripsi struct, objek, atau record. |
ITableAssertions
Opsi untuk membuat pernyataan sebagai bagian dari definisi tabel.
nonNull
|
string | string[]
|
Kolom yang tidak pernah boleh NULL .
Jika ditetapkan, pernyataan yang sesuai akan gagal jika ada baris yang berisi nilai |
|
rowConditions
|
string[]
|
Kondisi umum yang harus berlaku untuk semua baris dalam tabel.
Jika ditetapkan, pernyataan yang sesuai akan gagal jika ada baris yang melanggar salah satu kondisi tersebut. |
|
uniqueKey
|
string | string[]
|
Kolom yang membentuk indeks kunci unik tabel.
Jika ditetapkan, pernyataan yang dihasilkan akan gagal jika ada lebih dari satu baris dalam tabel dengan nilai yang sama untuk semua kolom ini. |
|
uniqueKeys
|
[]
|
Kombinasi kolom, yang masing-masing membentuk indeks kunci unik dari tabel.
Jika ditetapkan, pernyataan yang dihasilkan akan gagal jika ada lebih dari satu baris dalam tabel dengan nilai yang sama untuk semua kolom dalam kunci unik. |
ITableConfig
Opsi konfigurasi untuk tindakan table
, termasuk
jenis tabel table
, view
, dan incremental
.
Memperluas IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig, dan ITargetableConfig.
assertions
|
ITableAssertions
|
Pernyataan yang akan dijalankan pada tabel.
Jika dikonfigurasi, pernyataan yang relevan akan otomatis dibuat dan dijalankan sebagai dependensi tabel ini. |
|
bigquery
|
IBigQueryOptions
|
Opsi warehouse khusus BigQuery. | |
columns
|
IColumnsDescriptor
|
Deskripsi kolom dalam tabel. | |
database
|
string
|
Database (project ID Google Cloud) yang digunakan untuk membuat output tindakan ini. | |
description
|
string
|
Deskripsi tabel. | |
disabled
|
boolean
|
Jika ditetapkan ke true , tindakan ini tidak akan dijalankan.
Tindakan masih dapat diandalkan.
Berguna untuk menonaktifkan tindakan yang rusak untuk sementara.
|
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis. Suatu tindakan bersifat hermetis jika semua dependensinya dideklarasikan secara eksplisit.
Jika tindakan ini bergantung pada data dari sumber yang tidak dideklarasikan
sebagai dependensi, tetapkan |
|
materialized
|
boolean
|
Hanya valid jika jenis tabel adalah view .
Jika disetel ke benar (true), tampilan terwujud akan dibuat. |
|
protected
|
boolean
|
Hanya diizinkan untuk jenis tabel incremental .
Jika disetel ke benar (true), tindakan ini akan mengabaikan opsi |
|
schema
|
string
|
Skema (set data BigQuery) yang digunakan untuk membuat output tindakan ini. | |
tags
|
string[]
|
Daftar tag buatan pengguna yang diterapkan ke tindakan ini. | |
type
|
TableType
|
Jenis tabel. | |
uniqueKey
|
string[]
|
Kunci unik untuk kriteria penggabungan bagi tabel inkremental.
Jika dikonfigurasi, data dengan kunci unik yang cocok akan diperbarui, bukan baris baru yang disisipkan. |
ITableContext
Metode konteks tersedia saat mengevaluasi kode SQL yang dapat konteks,
seperti dalam file SQLX, atau saat menggunakan argumen Contextable
dengan inti Dataform.
incremental
|
() => boolean
|
Menampilkan true (benar) jika konteks saat ini menunjukkan bahwa tabel akan dibuat secara inkremental. | |
name
|
() => string
|
Menampilkan nama tabel yang sepenuhnya memenuhi syarat. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Mereferensikan tindakan lain, menambahkannya sebagai dependensi untuk tindakan ini,
menampilkan SQL valid untuk digunakan dalam ekspresi from.
Fungsi ini dapat dipanggil dengan objek
Fungsi ini juga dapat dipanggil menggunakan argumen individual untuk nilai
Jika hanya dua nilai yang disediakan, database default akan digunakan dan nilai akan ditafsirkan sebagai
Jika hanya satu nilai yang disediakan, skema database default akan digunakan, dengan nilai yang disediakan ditafsirkan sebagai `"name"`.
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Mirip dengan ref , tetapi bukan menambahkan dependensi,
alat ini akan me-resolve referensi yang diberikan sehingga dapat digunakan dalam SQL,
misalnya, dalam ekspresi `from`.
|
|
self
|
() => string
|
Setara dengan resolve(name()) .
Menampilkan string SQL valid yang dapat digunakan untuk mereferensikan tabel yang dihasilkan oleh tindakan ini. |
|
when
|
(cond: boolean, trueCase: string, falseCase: string) => string
|
Singkatan untuk kondisi if .
Setara dengan cond ? trueCase : falseCase .
|
ITarget
Referensi ke tabel dalam BigQuery.
database
|
string
|
name
|
string
|
schema
|
string
|
ITargetableConfig
Menentukan database target dan skema tindakan alur kerja SQL.
database
|
string
|
Database tempat output tindakan ini harus dibuat. Harus ditetapkan ke BigQuery. |
|
schema
|
string
|
Skema yang digunakan untuk membuat output tindakan ini. |
operasi()
operate
|
(name: string, queries?: Contextable
|
Mendefinisikan operasi SQL. Hanya tersedia di direktori |
Contoh:
// definitions/file.js
operate("an-operation", ["SELECT 1", "SELECT 2"])
publish()
publish
|
(name: string, queryOrConfig?: Contextable
|
Membuat tabel atau tampilan. Hanya tersedia di direktori |
Contoh:
// definitions/file.js
publish("published-table", {
type: "table",
dependencies: ["a-declaration"],
}).query(ctx => "SELECT 1 AS test");
Dapat diselesaikan
Objek yang dapat diselesaikan dapat berupa nama tabel sebagai string
,
atau objek yang menjelaskan jalur lengkap ke relasi.
string | ITarget
TableType
Jenis tindakan tabel yang didukung.
Tabel jenis view
akan dibuat sebagai tampilan.
Tabel jenis table
akan dibuat sebagai tabel.
Tabel jenis incremental
harus menyertakan klausul where
.
Untuk informasi selengkapnya, lihat
Mengonfigurasi tabel inkremental.