Tabelleneigenschaften und Tabellenoptionen
Gilt für: Databricks SQL Databricks Runtime
Definiert benutzerdefinierte Tags für Tabellen und Ansichten.
-
Eine Tabelleneigenschaft ist ein Schlüsselwertpaar, das Sie initialisieren können, wenn Sie eine CREATE TABLE oder eine CREATE VIEW ausführen. Mit ALTER TABLE oder ALTER TABLE können Sie bestehende Tabelleneigenschaften ENTFERNEN oder neue oder bestehende Tabelleneigenschaften SETZEN.
Sie können Tabelleneigenschaften verwenden, um Tabellen mit Informationen zu kennzeichnen, die von SQL nicht nachverfolgt werden.
-
Der Zweck der Tabellenoptionen besteht darin, Speichereigenschaften an den zugrunde liegenden Speicher zu übergeben, z. B. SERDE-Eigenschaften an Hive.
Eine Tabellenoption ist ein Schlüsselwertpaar, das Sie beim Ausführen einer CREATE TABLE initialisieren können. Sie können keine
SET
Tabellenoption verwendenUNSET
.
TBLPROPERTIES
Legt eine oder mehrere Tabelleneigenschaften in einer neuen Tabelle oder Ansicht fest.
Sie können Tabelleneigenschaften verwenden, um Tabellen mit Informationen zu kennzeichnen, die von SQL nicht nachverfolgt werden.
Syntax
TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameter
property_key
Der Eigenschaftenschlüssel. Der Schlüssel kann aus einem oder mehreren Bezeichnern bestehen, die durch einen Punkt oder ein Zeichenfolgenliteral getrennt sind.
Eigenschaftenschlüssel müssen eindeutig sein und Groß-/Kleinschreibung beachtet werden.
property_val
Der Wert für die Eigenschaft. Der Wert muss ein Literal vom Typ
BOOLEAN
,STRING
,INTEGER
oderDECIMAL
sein.
Beispiele
-- 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
Legt eine oder mehrere Tabelleneigenschaften in einer vorhandenen Tabelle oder Ansicht fest.
Syntax
SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameter
property_key
Der Eigenschaftenschlüssel. Der Schlüssel kann aus einem oder mehreren Bezeichnern bestehen, die durch einen Punkt oder ein Zeichenfolgenliteral getrennt sind.
Eigenschaftenschlüssel müssen eindeutig sein und Groß-/Kleinschreibung beachtet werden.
property_val
Der neue Wert für die Eigenschaft. Der Wert muss ein Literal vom Typ
BOOLEAN
,STRING
,INTEGER
oderDECIMAL
sein.
Beispiele
-- 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
...
UNSET TBLPROPERTIES
Entfernt eine oder mehrere Tabelleneigenschaften aus einer Tabelle oder Ansicht.
Syntax
UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameter
IF EXISTS
Eine optionale Klausel, die Databricks leitet, SQL keinen Fehler auslösen, wenn eine der Eigenschaftenschlüssel nicht vorhanden ist.
property_key
Der Schlüssel der zu entfernenden Eigenschaft. Der Schlüssel kann aus einem oder mehreren Bezeichnern bestehen, die durch einen Punkt oder ein Zeichenfolgenliteral getrennt sind.
Bei Eigenschaftenschlüsseln wird Groß-/Kleinschreibung unterschieden. Wenn
property_key
nicht vorhanden ist und Fehler ausgelöst werden, es sei dennIF EXISTS
wurde angegeben.
Beispiele
-- 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 ...
OPTIONS
Legt eine oder mehrere Tabellenoptionen in einer neuen Tabelle fest.
Der Zweck der Tabellenoptionen besteht darin, Speichereigenschaften an den zugrunde liegenden Speicher zu übergeben, z. B. SERDE-Eigenschaften an Hive.
Wenn Sie Tabellenoptionen für Delta Lake-Tabellen angeben, werden diese Optionen auch als Tabelleneigenschaften angezeigt.
Syntax
OPTIONS ( { property_key [ = ] property_val } [, ...] )
property_key
{ identifier [. ...] | string_literal }
Parameter
property_key
Der Eigenschaftenschlüssel. Der Schlüssel kann aus einem oder mehreren Bezeichnern bestehen, die durch einen Punkt oder ein Zeichenfolgenliteral getrennt sind.
Eigenschaftenschlüssel müssen eindeutig sein, und die Groß-/Kleinschreibung muss beachtet werden.
property_val
Der Wert für die Eigenschaft. Der Wert muss ein Literal vom Typ
BOOLEAN
,STRING
,INTEGER
oderDECIMAL
sein.In Databricks SQL und Databricks Runtime 13.3 LTS und höher kann
property_val
ein konstanter Ausdruck sein.
Beispiele
-- 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
...
Reservierte Tabelleneigenschaftenschlüssel
Azure Databricks behält einige Eigenschaftenschlüssel für die eigene Verwendung vor und löst einen Fehler aus, wenn Sie versuchen, sie zu verwenden:
external
Verwenden Sie CREATE EXTERNAL TABLE, um eine externe Tabelle zu erstellen.
location
Verwenden Sie die
LOCATION
Klauseln ALTER TABLE und CREATE TABLE, um einen Tabellenspeicherort festzulegen.owner
Verwenden Sie die
[SET] OWNER TO
Klausel von ALTER TABLE und ALTER VIEW, um den Besitz einer Tabelle oder Ansicht zu übertragen. SET ist als optionales Schlüsselwort in Databricks SQL zulässig.provider
Verwenden der
USING
Klausel von CREATE TABLE zum Festlegen der Datenquelle einer Tabelle
Sie sollten keine Eigenschaftenschlüssel verwenden, die mit dem option
Bezeichner beginnen.
Dieser Präfixbezeichner wird in SHOW TBLPROPERTIES gefiltert.
Das option
Präfix wird auch zum Anzeigen von Tabellenoptionen verwendet.
Allgemeine TBLPROPERTIES- und OPTIONStasten
Die folgenden Einstellungen werden häufig mit Delta Lake verwendet:
delta.appendOnly
: Auftrue
deaktivierenUPDATE
undDELETE
Vorgänge festlegen.delta.dataSkippingNumIndexedCols
: Legen Sie die Anzahl der führenden Spalten fest, für die Statistiken erfasst und berücksichtigt werden sollen.delta.deletedFileRetentionDuration
: Legen Sie ein Intervall fest, z. B.'interval 7 days'
zum Steuern, wannVACUUM
Dateien gelöscht werden dürfen.delta.logRetentionDuration
: Legen Sie ein Intervall fest, z'interval 60 days'
. B. um zu steuern, wie lange der Verlauf für Zeitreiseabfragen aufbewahrt wird.