Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie die zusätzliche Tabellenmetadaten-API von OneLake, um Beschreibungen und Schlüssel-Wert-Tags für eine Tabelle und ihre Spalten zu lesen und zu schreiben. Diese API verwendet eine gemeinsame REST-Route anstelle der Iceberg REST Catalog- oder Unity Catalog-kompatiblen Routen.
Füge zum Beispiel eine Beschreibung hinzu, die den Geschäftszweck einer Tabelle erklärt, tagge die Tabelle mit dem zuständigen Team und beschreibe, wie eine Spalte interpretiert werden soll. Diese Operationen arbeiten mit deskriptiven Metadaten, nicht mit Tabellenzeilen. Um Zeilen abzurufen, verwenden Sie die OneLake Table Read API.
Wichtig
Die zusätzliche Tabellen-Metadaten-API befindet sich in der öffentlichen Vorschau. Features und Verhalten können sich vor der allgemeinen Verfügbarkeit ändern.
Voraussetzungen
- Erfüllen Sie die Voraussetzungen und Authentifizierungsschritte der geteilten Tabellen-API.
- Identifizieren Sie die Arbeitsbereichs-ID, die Item-ID, den Schemanamen und den Tabellennamen Ihrer Zieltabelle.
- Identifizieren Sie die vorhandenen Spalten, die Sie beschreiben oder markieren möchten.
- Verwenden Sie eine Identität mit den erforderlichen Berechtigungen, um Metadaten für die Zieltabelle zu lesen oder zu schreiben.
Die Beispiele verwenden eine Tabelle namens dbo im Schema sales und eine bestehende Spalte namens customer_id. Ersetzen Sie diese Namen durch die Namen Ihrer Tabelle.
Endpoint und Operationen
Verwenden Sie die folgende Basis-URL:
https://onelake.table.fabric.microsoft.com
Beide Vorgänge nutzen dieselbe Route:
/common/v1/<WorkspaceID>/<ItemID>/schemas/<SchemaName>/tables/<TableName>/additionalMetadata
| Methode | Operation | Erfolgreiche Antwort |
|---|---|---|
GET |
Lesen Sie zusätzliche Metadaten für eine Tabelle und ihre Spalten. |
200 OK mit einer JSON-Metadaten-Antwort. |
POST |
Legen Sie zusätzliche Metadaten für eine Tabelle und ihre Spalten fest. |
200 OK mit einer JSON-Metadaten-Antwort. |
Verwenden Sie GUIDs für <WorkspaceID> und <ItemID>. URL-kodieren Sie das Schema und die Tabellennamen als einzelne Pfadsegmente. Fügen Sie einen Authorization: Bearer <Token> Header mit einem Microsoft Entra ID-Zugriffstoken für die https://storage.azure.com/ Zielgruppe hinzu. Für POST schließen Sie Content-Type: application/json ebenfalls ein.
Unterstützte Beschreibungen und Tags
Verwenden Sie diese Felder in einer POST Anfrage:
| Feld | Typ | Beschreibung und Grenzen |
|---|---|---|
description |
String | Die Tabellenbeschreibung. Maximal 1.024 Zeichen. |
tags |
Objekt | Tabellen-Tags als Schlüssel-Wert-Paare vom Typ Zeichenkette. Jeder Schlüssel hat maximal 128 Zeichen, und jeder Wert maximal 256 Zeichen. |
columns |
Array | Zusätzliche Metadaten für die Spalten, die Sie in der Anfrage identifizieren. |
columns[].columnName |
String | Der Name einer vorhandenen Spalte. Verwenden Sie dieses Feld, um die Spalte zu identifizieren, die Sie beschreiben oder markieren möchten. |
columns[].description |
String | Die Beschreibung der Spalte. Maximal 1.024 Zeichen. |
columns[].tags |
Objekt | Spaltentags als String-Schlüssel-Wert-Paare. Die Schlüssel- und Wertbeschränkungen sind dieselben wie bei Tabellen-Tags. |
Lesen Sie weitere Metadaten
Senden Sie eine GET Anfrage, um Metadaten auf Tabellenebene und Spaltenebene zu erhalten.
GET https://onelake.table.fabric.microsoft.com/common/v1/<WorkspaceID>/<ItemID>/schemas/dbo/tables/sales/additionalMetadata
Authorization: Bearer <Token>
Accept: application/json
Eine erfolgreiche Anforderung gibt zurück 200 OK. Das folgende JSON zeigt das Antwortformat:
{
"description": "Sales transactions.",
"tags": {
"domain": "sales",
"owner": "sales-analytics"
},
"columns": [
{
"columnName": "customer_id",
"description": "Customer identifier.",
"tags": {
"role": "customer-key"
}
}
]
}
Die Werte, Spaltennamen und Felder in Ihrer Antwort hängen von der Zieltabelle und deren Metadaten ab. Der Vertrag verlangt nicht, dass jedes Feld vorhanden ist.
Zusätzliche Metadaten schreiben
Senden Sie eine POST-Anfrage mit einem JSON-Körper, um die zusätzlichen Metadaten der Tabelle zu ersetzen.
Wichtig
POST ersetzt bestehende zusätzliche Metadaten; es handelt sich nicht um ein teilweises Update. Fügen Sie die Tabellenbeschreibung, Tabellen-Tags, Spaltenbeschreibungen und Tags ein, die Sie in jeder Anfrage beibehalten möchten. Zum Beispiel setzt eine Anfrage, die enthält description , nur die Tabellenbeschreibung fest und entfernt bestehende Tabellentags sowie alle Spaltenbeschreibungen und Tags.
Dieses Beispiel legt eine Tabellenbeschreibung und Tags sowie eine Beschreibung und ein Tag für customer_idfest. Sie identifiziert die Spalte mit columnName.
POST https://onelake.table.fabric.microsoft.com/common/v1/<WorkspaceID>/<ItemID>/schemas/dbo/tables/sales/additionalMetadata
Authorization: Bearer <Token>
Content-Type: application/json
Accept: application/json
Anfrageinhalt:
{
"description": "Sales transactions used for revenue reporting.",
"tags": {
"domain": "sales",
"owner": "sales-analytics"
},
"columns": [
{
"columnName": "customer_id",
"description": "Identifier of the customer associated with the sale.",
"tags": {
"role": "customer-key"
}
}
]
}
Eine erfolgreiche Anfrage gibt 200 OK mit einer zusätzlichen Metadaten-Antwort zurück. Beispiele:
{
"description": "Sales transactions used for revenue reporting.",
"tags": {
"domain": "sales",
"owner": "sales-analytics"
},
"columns": [
{
"columnName": "customer_id",
"description": "Identifier of the customer associated with the sale.",
"tags": {
"role": "customer-key"
}
}
]
}
Senden Sie nach dem Schreiben eine weitere GET Anfrage, um die Metadaten zu überprüfen.
Bestehende Metadaten bewahren
Um ausgewählte Beschreibungen oder Tags zu ändern, ohne andere Metadaten zu entfernen, verwenden Sie eine Read-Modify-Write-Sequenz:
- Senden Sie eine
GETAnfrage, um die aktuellen zusätzlichen Metadaten zu lesen. - Ändern Sie die Beschreibungen oder Tags, die Sie in den zurückgegebenen Metadaten aktualisieren möchten. Behalte die anderen Felder, Tag-Schlüssel und Spalteneinträge, die du behalten möchtest.
- Senden Sie die vollständigen aktualisierten Metadaten in einer
POSTAnfrage. - Senden Sie eine weitere
GETAnfrage zur Bestätigung des Ergebnisses.
Koordiniere gleichzeitige Metadaten-Updates, damit zwischen deinen GET- und POST-Anfragen kein weiterer Schreibvorgang erfolgt.
Metadaten mit Python lesen und schreiben
Das folgende Beispiel authentifiziert sich mit Microsoft Entra ID, liest die aktuellen Metadaten, aktualisiert ausgewählte Beschreibungen und Tags, wobei die übrigen Metadaten beibehalten werden, und liest die Metadaten erneut. Es ruft keine formatspezifische Katalog-API auf und fordert keine Speicheranmeldeinformationen an.
Caution
Das Ausführen dieses Beispiels schreibt Metadaten. Verwenden Sie eine Testtabelle und -spalte und ersetzen Sie die Beispielbeschreibungen und Tags, bevor Sie es ausführen. Das Beispiel bewahrt Metadaten von seiner Erstlesung, kann jedoch Änderungen überschreiben, die ein anderer Client vor dem Schreiben vorgenommen hat.
Installieren Sie die Abhängigkeiten:
python -m pip install azure-identity requests
Konfigurieren Sie eine unterstützte Azure Identity-Authentifizierungsmethode, wie zum Beispiel die lokale Anmeldung mit der Azure CLI, bevor Sie das Beispiel ausführen.
import json
from urllib.parse import quote
import requests
from azure.identity import DefaultAzureCredential
workspace_id = "<WorkspaceID>"
item_id = "<ItemID>"
schema_name = "dbo"
table_name = "sales"
column_name = "customer_id"
url = (
"https://onelake.table.fabric.microsoft.com/common/v1/"
f"{workspace_id}/{item_id}/schemas/{quote(schema_name, safe='')}/"
f"tables/{quote(table_name, safe='')}/additionalMetadata"
)
with DefaultAzureCredential() as credential, requests.Session() as session:
session.headers.update({"Accept": "application/json"})
def request_metadata(method, **kwargs):
token = credential.get_token("https://storage.azure.com/.default")
response = session.request(
method,
url,
headers={"Authorization": f"Bearer {token.token}"},
timeout=30,
**kwargs,
)
response.raise_for_status()
return response.json()
metadata = request_metadata("GET")
print("Before:")
print(json.dumps(metadata, indent=2))
metadata["description"] = "Sales transactions used for revenue reporting."
metadata.setdefault("tags", {}).update(
{"domain": "sales", "owner": "sales-analytics"}
)
columns = metadata.setdefault("columns", [])
column = next(
(entry for entry in columns if entry.get("columnName") == column_name),
None,
)
if column is None:
column = {"columnName": column_name}
columns.append(column)
column["description"] = "Identifier of the customer associated with the sale."
column.setdefault("tags", {}).update({"role": "customer-key"})
print("Write response:")
print(json.dumps(request_metadata("POST", json=metadata), indent=2))
print("After:")
print(json.dumps(request_metadata("GET"), indent=2))
Das Argument json setzt den Content-Type: application/json Request-Header. Das Beispiel erzeugt eine Ausnahme für eine erfolglose HTTP-Antwort, anstatt sie als erfolgreiches Metadaten-Update zu behandeln.
Arbeiten Sie mit Metadaten über OneLake-Verknüpfungen
Für eine interne OneLake-Tabellen-Verknüpfung verwenden Sie die Arbeitsbereich-ID, die Item-ID, den Schemanamen und den Tabellennamen des Shortcuts in derselben zusätzlichen Metadaten-Route. Die Operationen arbeiten mit den Metadaten der Zieltabelle, nicht mit einer separaten Kopie der Metadaten für die Verknüpfung:
-
GETgibt die zusätzlichen Metadaten der Zieltabelle zurück, einschließlich ihrer Beschreibungen und Tags. -
POSTersetzt die zusätzlichen Metadaten der Zieltabelle. Die Änderungen sind sichtbar, wenn man Metadaten entweder über die Verknüpfung oder die Zieltabelle liest.
Zum Beispiel, wenn eine Verknüpfung namens sales auf sales_shortcut zeigt, lesen Sie die Metadaten der Quelltabelle durch die Verknüpfung mit folgender Anfrage:
GET https://onelake.table.fabric.microsoft.com/common/v1/<WorkspaceID>/<ItemID>/schemas/dbo/tables/sales_shortcut/additionalMetadata
Authorization: Bearer <token>
Accept: application/json
Um Metadaten über den Shortcut zu aktualisieren, senden Sie eine POST Anfrage an dieselbe URL. Die Ersetzungssemantik gilt auch für die Zieltabelle: Eine reine Beschreibungsanforderung über den Kurzbefehl entfernt die vorhandenen Tags und Spaltenmetadaten der Zieltabelle. Verwenden Sie die Read-Modify-Write-Sequenz, um die Metadaten zu behalten, die Sie behalten möchten.
Der Zugriff erfordert Berechtigungen für die Operation sowohl auf dem Shortcut-Pfad als auch auf dem Zieltabellenpfad. Für Passthrough-Shortcuts benötigt Ihre Identität beide Berechtigungssätze; Allein die Berechtigungen der Zieltabelle reichen nicht aus. Für delegierte Tastenkombinationen verwendet der Zielzugriff die konfigurierte Verbindungsidentität. Details finden Sie unter OneLake Shortcut Security.
Fehler behandeln und Anfragen diagnostizieren
Bei einer erfolglosen Anfrage inspizieren Sie den HTTP-Status und die JSON-Fehlerantwort. Der Error Contract hat folgende Form; die Code- und Nachrichtenplatzhalter sind keine dienstspezifischen Fehlerwerte:
{
"error": {
"code": "<ErrorCode>",
"message": "<ErrorMessage>"
}
}
Das Objekt error kann auch ein details und ein target-Array enthalten. Jedes Detail enthält ein code und message, und kann ein target enthalten. Der Vertrag zählt keine operation-spezifischen Fehlercodes oder Statuscodes auf.
Für Diagnostik kannst du einen optionalen x-ms-root-activity-id Header mit einer GUID senden. Nehmen Sie den Antwortheader x-ms-root-activity-id auf, wenn Sie Probleme mit einer Anfrage untersuchen. Protokolliere den Bearer-Token nicht.