Dokumen ini menjelaskan metode, properti, dan opsi konfigurasi inti Dataform. Anda dapat menggunakan inti Dataform dalam file SQLX dan JavaScript.
assert()
assert
|
(name: string, query?: AContextable
|
Menambahkan pernyataan Dataform ke 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 diberi konteks,
seperti dalam file SQLX, atau saat menggunakan
argumen Contextable
dengan inti Dataform.
database
|
() => string
|
Menampilkan database set data ini, jika ada. | |
name
|
() => string
|
Menampilkan nama tabel ini. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Mereferensikan tindakan lain, menambahkannya sebagai dependensi ke tindakan ini,
menampilkan SQL yang valid untuk digunakan dalam ekspresi from .
Fungsi ini dapat dipanggil dengan objek
Fungsi ini juga dapat dipanggil menggunakan argumen individual untuk
nilai ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Serupa dengan ref , tetapi tidak menambahkan tindakan
yang dirujuk sebagai dependensi ke tindakan ini.
|
|
self
|
() => string
|
Setara dengan resolve(name()) .
Menampilkan string SQL yang valid dan dapat digunakan untuk mereferensikan tabel yang dihasilkan oleh tindakan ini. |
|
schema
|
() => string
|
Menampilkan skema set data ini. |
Contextable
Argumen yang dapat dikontekstualisasikan dapat meneruskan nilai biasa untuk jenis umum
T
atau fungsi yang dipanggil dengan objek konteks untuk jenis
operasi ini.
T | (ctx: Context) => T
Dataform
Variabel global yang berisi objek IProjectConfig.
Diperlukan untuk mendapatkan properti IProjectConfig
, misalnya:
dataform.projectConfig.vars.myVariableName === "myVariableValue"
declare()
declare
|
(dataset: dataform.ITarget)
|
Mendeklarasikan set data sebagai sumber data Dataform. Hanya tersedia di direktori |
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 yang ditentukan pengguna yang akan digunakan untuk memberi 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 (ID project Google Cloud) tempat membuat tampilan yang sesuai untuk pernyataan ini. | |
description
|
string
|
Deskripsi pernyataan ini. | |
disabled
|
boolean
|
Jika ditetapkan ke true , tindakan ini tidak akan dijalankan.
Tindakan tersebut masih dapat diandalkan. Berguna untuk menonaktifkan tindakan yang rusak
untuk sementara.
|
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis. 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) tempat membuat tampilan yang sesuai untuk pernyataan ini. | |
tags
|
string[]
|
Daftar tag yang ditentukan 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 dienkapsulasi dalam tanda kutip ganda, misalnya:
Jika nama opsi berisi karakter khusus, gabungkan nama dalam tanda kutip,
misalnya: |
|
clusterBy
|
string[]
|
Kunci yang akan digunakan untuk mengelompokkan partisi. | |
labels
|
|
Pasangan nilai kunci untuk label BigQuery.
Jika nama label berisi karakter khusus, misalnya tanda hubung,
tempatkan nama dalam tanda kutip, misalnya, |
|
partitionBy
|
string
|
Kunci yang digunakan untuk mempartisi tabel. Biasanya nama stempel waktu atau kolom tanggal. | |
partitionExpirationDays
|
number
|
Jumlah hari BigQuery 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 berpartisi memerlukan filter predikat klausa WHERE
yang memfilter kolom partisi.
|
|
updatePartitionFilter
|
string
|
Filter berbasis SQL untuk 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 (ID project Google Cloud) tempat membuat tabel sumber sudah ada. | |
description
|
string
|
Deskripsi tabel. | |
schema
|
string
|
Skema (set data BigQuery) tempat tabel sumber berada. |
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, nilai ini akan tetap tidak ditetapkan, karena sebagian besar dependensi dideklarasikan sebagai produk sampingan dari penggunaan fungsi |
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis atau tidak. Tindakan bersifat hermetis jika
semua dependensinya dideklarasikan secara eksplisit. Jika tindakan ini bergantung pada
data dari sumber yang belum dideklarasikan sebagai dependensi, maka
|
IDocumentableConfig
Menentukan deskripsi set data dan kolomnya.
columns
|
IColumnsDescriptor
|
Deskripsi kolom dalam set data. |
|
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 (ID project Google Cloud) tempat membuat output tindakan ini. | |
description
|
string
|
Deskripsi tabel. | |
disabled
|
boolean
|
Jika ditetapkan ke true , tindakan ini tidak akan dijalankan.
Tindakan tersebut masih dapat diandalkan.
Berguna untuk menonaktifkan tindakan yang rusak untuk sementara.
|
|
hasOutput
|
boolean
|
Mendeklarasikan bahwa tindakan operations ini membuat tabel
yang dapat direferensikan menggunakan fungsi ref .
Jika disetel ke create or replace table ${self()} as select ...
|
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis. 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) tempat membuat output tindakan ini. | |
tags
|
string[]
|
Daftar tag yang ditentukan 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 (ID project 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 awal semua nama tabel. | |
warehouse
|
string
|
Wajib. Harus ditetapkan ke bigquery .
|
Anda dapat menetapkan properti IProjectConfig
di setelan alur kerja
di tingkat repositori.
Anda dapat mengganti properti defaultSchema
dan defaultDatabase
untuk setiap 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 setelan alur kerja dengan
properti projectConfig.vars
,
yang diakses dalam 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 data dalam tabel yang memiliki kolom bertingkat.
bigqueryPolicyTags
|
string | string[]
|
ID lengkap tag kebijakan BigQuery yang diterapkan ke kolom ini. ID lengkap tag kebijakan BigQuery mencakup nama, lokasi, dan taksonomi project,
Contoh: |
|
columns
|
IColumnsDescriptor
|
Deskripsi kolom dalam struct, objek, atau data. | |
description
|
string
|
Deskripsi struct, objek, atau data. |
ITableAssertions
Opsi untuk membuat pernyataan sebagai bagian dari definisi tabel.
nonNull
|
string | string[]
|
Kolom yang tidak boleh berupa 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 ini. |
|
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 merupakan
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 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 di 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 (ID project Google Cloud) tempat membuat output tindakan ini. | |
description
|
string
|
Deskripsi tabel. | |
disabled
|
boolean
|
Jika ditetapkan ke true , tindakan ini tidak akan dijalankan.
Tindakan tersebut masih dapat diandalkan.
Berguna untuk menonaktifkan tindakan yang rusak untuk sementara.
|
|
hermetic
|
boolean
|
Mendeklarasikan apakah tindakan ini bersifat hermetis. 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 berlaku jika jenis tabelnya adalah view .
Jika disetel ke benar (true), tampilan terwujud akan dibuat. |
|
protected
|
boolean
|
Hanya diizinkan untuk jenis tabel incremental .
Jika ditetapkan ke true, menjalankan tindakan ini akan mengabaikan opsi |
|
schema
|
string
|
Skema (set data BigQuery) tempat membuat output tindakan ini. | |
tags
|
string[]
|
Daftar tag yang ditentukan pengguna yang diterapkan ke tindakan ini. | |
type
|
TableType
|
Jenis tabel. | |
uniqueKey
|
string[]
|
Kunci unik untuk kriteria penggabungan tabel inkremental.
Jika dikonfigurasi, kumpulan data dengan kunci unik yang cocok akan diperbarui, bukan baris baru yang disisipkan. |
ITableContext
Metode konteks tersedia saat mengevaluasi kode SQL yang dapat dikontekstualisasikan,
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 bertahap. | |
name
|
() => string
|
Menampilkan nama lengkap tabel ini. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Mereferensikan tindakan lain, menambahkannya sebagai dependensi ke tindakan ini,
menampilkan SQL yang valid untuk digunakan dalam ekspresi from.
Fungsi ini dapat dipanggil dengan objek ${ref({ name: "name", schema: "schema", database: "database" })}
Fungsi ini juga dapat dipanggil menggunakan argumen individual untuk
nilai
Jika hanya dua nilai yang diberikan, database default akan digunakan dan nilai
akan ditafsirkan sebagai Jika hanya satu nilai yang diberikan, skema database default akan digunakan, dengan nilai yang diberikan ditafsirkan sebagai `"name"`. ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Mirip dengan ref , tetapi bukan menambahkan dependensi,
referensi yang disediakan akan di-resolve sehingga dapat digunakan dalam SQL,
misalnya, dalam ekspresi `from`.
|
|
self
|
() => string
|
Setara dengan resolve(name()) .
Menampilkan string SQL yang valid dan 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 dan skema target tindakan alur kerja SQL.
database
|
string
|
Database tempat output tindakan ini harus dibuat. Harus ditetapkan ke BigQuery. |
|
schema
|
string
|
Skema tempat output tindakan ini harus dibuat. |
operate()
operate
|
(name: string, queries?: Contextable
|
Menentukan 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
Yang dapat di-resolve 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 klausa where
.
Untuk informasi selengkapnya, lihat
Mengonfigurasi tabel inkremental.