Tabeleigenschappen en tabelopties
Van toepassing op: Databricks SQL
Databricks Runtime
Hiermee definieert u door de gebruiker gedefinieerde tags voor tabellen en weergaven.
-
Een tabeleigenschap is een sleutel-waardepaar dat u kunt initialiseren wanneer u een CREATE TABLE of een CREATE VIEWuitvoert. U kunt UNSET bestaande of SET nieuwe of bestaande tabeleigenschappen met behulp van ALTER TABLE of ALTER VIEW.
U kunt tabeleigenschappen gebruiken om tabellen te taggen met gegevens die niet worden bijgehouden door SQL.
-
Het doel van tabelopties is om opslageigenschappen door te geven aan de onderliggende opslag, zoals SERDE-eigenschappen aan Hive.
Een tabeloptie is een sleutel-waardepaar dat u kunt initialiseren wanneer u een CREATE TABLEuitvoert. U kunt geen tabeloptie uitvoeren met
SET
ofUNSET
.
TBLPROPERTIES
Hiermee stelt u een of meer tabeleigenschappen in een nieuwe tabel of weergave in.
U kunt tabeleigenschappen gebruiken om tabellen te taggen met gegevens die niet worden bijgehouden door SQL.
Syntaxis
TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
property_key
De eigenschapssleutel. De sleutel kan bestaan uit een of meer id's , gescheiden door een punt of een letterlijke tekenreeks.
Eigenschapssleutels moeten uniek zijn en hoofdlettergevoelig zijn.
property_val
De waarde voor de eigenschap. De waarde moet een
BOOLEAN
,STRING
ofINTEGER
DECIMAL
letterlijke waarde zijn.
Voorbeelden
-- Create table with user defined table properties
> CREATE TABLE T(c1 INT) TBLPROPERTIES('this.is.my.key' = 12, this.is.my.key2 = true);
> SHOW TBLPROPERTIES T;
key value
---------------- -----
...
this.is.my.key 14
this.is.my.key2 false
...
SET TBLPROPERTIES
Hiermee stelt u een of meer tabeleigenschappen in een bestaande tabel of weergave in.
Syntaxis
SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
property_key
De eigenschapssleutel. De sleutel kan bestaan uit een of meer id's , gescheiden door een punt of een letterlijke tekenreeks.
Eigenschapssleutels moeten uniek zijn en hoofdlettergevoelig zijn.
property_val
De nieuwe waarde voor de eigenschap. De waarde moet een
BOOLEAN
,STRING
ofINTEGER
DECIMAL
letterlijke waarde zijn.
Voorbeelden
-- Alter the a table's table properties.
> ALTER TABLE T SET TBLPROPERTIES(this.is.my.key = 14, 'this.is.my.key2' = false);
> SHOW TBLPROPERTIES T;
key value
---------------- -----
...
this.is.my.key 14
this.is.my.key2 false
...
NIET-INSTELLEN TBLPROPERTIES
Hiermee verwijdert u een of meer tabeleigenschappen uit een tabel of weergave.
Syntaxis
UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
INDIEN AANWEZIG
Een optionele component die Databricks SQL leidt om geen fout te genereren als een van de eigenschapssleutels niet bestaat.
property_key
De eigenschapssleutel die u wilt verwijderen. De sleutel kan bestaan uit een of meer id's , gescheiden door een punt of een letterlijke tekenreeks.
Eigenschapssleutels zijn hoofdlettergevoelig. Als
property_key
deze niet bestaat en er een fout optreedt, tenzijIF EXISTS
deze is opgegeven.
Voorbeelden
-- Remove a table's table properties.
> ALTER TABLE T UNSET TBLPROPERTIES(this.is.my.key, 'this.is.my.key2');
> SHOW TBLPROPERTIES T;
key value
-------------------------------- -----
... keys other that key and key2 ...
OPTIES
Hiermee stelt u een of meer tabelopties in een nieuwe tabel in.
Het doel van tabelopties is om opslageigenschappen door te geven aan de onderliggende opslag, zoals SERDE-eigenschappen aan Hive.
Als u tabelopties voor Delta Lake-tabellen opgeeft, worden deze opties ook als tabeleigenschappen herhaald.
Syntaxis
OPTIONS ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameters
property_key
De eigenschapssleutel. De sleutel kan bestaan uit een of meer id's , gescheiden door een punt of een letterlijke tekenreeks.
Eigenschapssleutels moeten uniek zijn en hoofdlettergevoelig zijn.
property_val
De waarde voor de eigenschap. De waarde moet een
BOOLEAN
,STRING
ofINTEGER
DECIMAL
letterlijke waarde zijn.In Databricks SQL en Databricks Runtime 13.3 LTS en hoger
property_val
kan een constante expressie zijn.
Voorbeelden
-- Create table with user defined table option
-- The options appears with an `option.` prefix.
> CREATE TABLE T(c1 INT) OPTIONS(this.is.my.key = 'blue' || 'green');
> SHOW TBLPROPERTIES T;
key value
---------------- -----
...
option.this.is.my.key bluegreen
...
Gereserveerde tabeleigenschapssleutels
Azure Databricks reserveert enkele eigenschapssleutels voor eigen gebruik en genereert een fout als u deze probeert te gebruiken:
external
Gebruik CREATE EXTERNAL TABLE om een externe tabel te maken.
location
Gebruik de
LOCATION
-componenten van ALTER TABLE en CREATE TABLE om een tabellocatie in te stellen.owner
Gebruik de
[SET] OWNER TO
-component van ALTER TABLE en ALTER VIEW om het eigendom van een tabel of weergave over te dragen. SET is toegestaan als een optioneel trefwoord in Databricks SQL.provider
Gebruik de
USING
-component van CREATE TABLE om de gegevensbron van een tabel in te stellen
Gebruik geen eigenschapssleutels die beginnen met de option
-id.
Deze voorvoegsel-id wordt uitgefilterd in SHOW TBLPROPERTIES.
Het option
voorvoegsel wordt ook gebruikt om tabelopties weer te geven.
Algemene TBLPROPERTIES- en OPTIONS-sleutels
De volgende instellingen worden vaak gebruikt met Delta Lake:
-
delta.appendOnly
: ingesteld optrue
omUPDATE
- enDELETE
-bewerkingen uit te schakelen. -
delta.dataSkippingNumIndexedCols
: Stel in op het aantal leidende kolommen waarvoor statistieken moeten worden verzameld en meegenomen. -
delta.deletedFileRetentionDuration
: Instellen op een interval zoals'interval 7 days'
om te bepalen wanneerVACUUM
bestanden mag verwijderen. -
delta.logRetentionDuration
: Stel in op een interval, zoals'interval 60 days'
om te bepalen hoe lang de geschiedenis wordt bewaard voor query's voor tijdreizen.