Referensi inti formulir data

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 /definitions.

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 Resolvable, misalnya: ${ref({ name: "name", schema: "schema", database: "database" })}

Fungsi ini juga dapat dipanggil menggunakan argumen individual untuk nilai "database", "schema", dan "name". Jika hanya dua nilai yang disediakan, database default akan digunakan dan nilai akan ditafsirkan sebagai "schema" dan "name". Jika hanya satu nilai yang disediakan, database dan skema 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
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 hermetic ke false. Jika tidak, tetapkan ke true.

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 partitionExpirationDays, memiliki kolom jenis/validitas yang dicentang. Untuk opsi tersebut, gunakan kolom khusus.

Nilai string harus digabungkan dengan tanda kutip ganda, misalnya: additionalOptions: {numeric_option: "5", string_option: '"string-value"'}

Jika nama opsi berisi karakter khusus, enkapsulasi nama dalam tanda kutip, misalnya: additionalOptions: { "option-name": "value" }.

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 labels: { "label-name": "value" }.

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 ref.

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, hermetic harus ditetapkan secara eksplisit ke false. Atau, jika tindakan ini hanya bergantung pada data dari dependensi yang dideklarasikan secara eksplisit, tindakan ini harus ditetapkan ke true.

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 true, tindakan ini akan membuat tabel dengan nama yang dikonfigurasi, menggunakan fungsi konteks self().

Contoh: create or replace table ${self()} as select ...

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 hermetic ke false. Jika tidak, tetapkan ke true.

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: "projects/1/locations/eu/taxonomies/2/policyTags/3"

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 NULL untuk kolom ini.

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 hermetic ke false. Jika tidak, tetapkan ke true.

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 full-refresh. Hal ini berguna untuk tabel yang dibuat dari data sementara, untuk memastikan bahwa data historis tidak pernah hilang.

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 Resolvable, misalnya: ${ref({ name: "name", schema: "schema", database: "database" })}

Fungsi ini juga dapat dipanggil menggunakan argumen individual untuk nilai "database", "schema", dan "name".

Jika hanya dua nilai yang disediakan, database default akan digunakan dan nilai akan ditafsirkan sebagai "schema" dan "name".

Jika hanya satu nilai yang disediakan, skema database default akan digunakan, dengan nilai yang disediakan 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, 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.

falseCase bersifat opsional, dan defaultnya adalah string kosong.

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 /definitions.

Contoh:

// definitions/file.js

operate("an-operation", ["SELECT 1", "SELECT 2"])

publish()

publish (name: string, queryOrConfig?: Contextable | ITableConfig)

Membuat tabel atau tampilan.

Hanya tersedia di direktori /definitions.

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.