Azure Data Catalog – Entwicklerkonzepte
Wichtig
Azure Data Catalog wird am 15. Mai 2024 eingestellt.
Es können keine neuen Azure Data Catalog-Konten mehr erstellt werden.
Verwenden Sie zur Nutzung von Data Catalog-Features den Dienst Microsoft Purview, der einheitliche Datengovernance für Ihren gesamten Datenbestand bietet.
Wenn Sie Azure Data Catalog bereits nutzen, müssen Sie einen Migrationsplan für Ihre Organisation erstellen, um bis zum 15. Mai 2024 auf Microsoft Purview umzustellen.
Azure Data Catalog von Microsoft ist ein vollständig verwalteter Clouddienst mit Funktionen für die Datenquellenermittlung und das Crowdsourcing von Datenquellenmetadaten. Entwickler können den Dienst über die REST-APIs nutzen. Eine erfolgreiche Integration von Azure Data Catalogsetzt voraus, dass die Entwickler mit den implementierten Konzepten vertraut sind.
Wichtige Begriffe
Das konzeptionelle Modell von Azure Data Catalog basiert auf vier zentralen Konzepten: Katalog, Benutzer, Assets und Anmerkungen.
Katalog
Ein Katalog ist ein Container auf oberster Ebene für alle Metadaten, die von einer Organisation gespeichert werden. Pro Azure-Konto ist jeweils ein Katalog zulässig. Kataloge sind mit einem Azure-Abonnement verknüpft, pro Konto kann aber immer nur ein einzelner Katalog erstellt werden (auch wenn ein Konto über mehrere Abonnements verfügen kann).
Der Katalog enthält Benutzer und Assets.
Benutzer
Benutzer*innen sind Sicherheitsprinzipale, die über Berechtigungen zum Ausführen von Aktionen im Katalog verfügen (Durchsuchen des Katalogs, Hinzufügen, Bearbeiten oder Entfernen von Elementen usw.).
Ein Benutzer kann verschiedene Rollen haben. Informationen zu Rollen finden Sie im Abschnitt „Rollen und Autorisierung“.
Einzelne Benutzer und Sicherheitsgruppen können hinzugefügt werden.
Azure Data Catalog verwendet Microsoft Entra ID für die Identitäts- und Zugriffsverwaltung. Jeder Katalogbenutzer muss einem Active Directory für das Konto angehören.
Objekte
Ein Katalog enthält Datenassets. Assets sind die Einheit der vom Katalog verwalteten Granularität.
Die Granularität eines Assets variiert je nach Datenquelle. Bei SQL Server oder Oracle Database kann ein Asset eine Tabelle oder Sicht sein. Bei SQL Server Analysis Services kann ein Asset eine Kennzahl, eine Dimension oder ein Key Performance Indicator (KPI) sein. Bei SQL Server Reporting Services ist ein Asset ein Bericht.
Ein Asset ist das Element, das Sie einem Katalog hinzufügen oder daraus entfernen. Es ist die Ergebniseinheit, die von Search zurückgegeben wird.
Ein Asset setzt sich aus dem Namen, dem Speicherort, dem Typ und Anmerkungen zur genaueren Beschreibung zusammen.
Anmerkungen
Anmerkungen sind Elemente, die Metadaten für Assets darstellen.
Beispiele für Anmerkungen wären etwa Beschreibungen, Tags, Schemas und Dokumentation. Im Abschnitt Assetobjektmodell finden Sie eine vollständige Liste der Asset- und Anmerkungstypen.
Crowdsourcing von Anmerkungen und Benutzerperspektive (Meinungsvielfalt)
Ein zentraler Aspekt von Azure Data Catalog ist die Crowdsourcing-Unterstützung für Metadaten im System. Im Gegensatz zu einem Wiki-Ansatz, bei dem nur eine einzelne Meinung möglich ist und vom letzten Autor bestimmt wird, können beim Azure Data Catalog-Modell gleichzeitig mehrere Meinungen im System vorhanden sein.
Dieser Ansatz spiegelt die Realität von Unternehmensdaten wider, da er für ein bestimmtes Asset verschiedene Perspektiven von unterschiedlichen Benutzern zulässt:
- Datenbankadministratorinnen und -administratoren können Informationen zu verfügbaren Vereinbarungen zum Servicelevel oder das verfügbare Verarbeitungszeitfenster für ETL-Massenvorgänge angeben.
- Data Stewards können Informationen zu den Geschäftsprozessen, bei denen die Ressource angewandt wird, oder die Klassifizierungen angeben, die das Unternehmen auf die Ressource angewandt hat.
- Finanzanalystinnen und -analysten können Informationen zur Verwendung der Daten im Rahmen der Berichterstellung am Ende des Zeitraums angeben.
Um dieses Beispiel zu ermöglichen, kann jeder Benutzer (Datenbankadministrator, Data Steward und Analyst) einer einzelnen, im Katalog registrierten Tabelle eine Beschreibung hinzufügen. Alle Beschreibungen werden im System gespeichert und im Azure Data Catalog-Portal angezeigt.
Dieses Muster wird auf die meisten Elemente im Objektmodell angewendet. Daher handelt es sich bei Objekttypen in der JSON-Nutzlast häufig um Arrays für Eigenschaften, obwohl Sie unter Umständen einen Singleton erwarten würden.
Am Assetstamm findet sich beispielsweise ein Array mit Beschreibungsobjekten. Die Array-Eigenschaft heißt „descriptions“. Eine Beschreibungsobjekt besitzt eine einzige Eigenschaft – die Beschreibung. Für jeden Benutzer, der „description“ eingibt, wird ein Beschreibungsobjekt für den von ihm angegebenen Wert erstellt.
Die UX kann dann entscheiden, wie die Kombination dargestellt wird. Für die Anzeige stehen drei verschiedene Muster zur Verfügung.
- Das einfachste Muster ist „Alles anzeigen“. Bei diesem Muster werden alle Objekte in einer Listenansicht angezeigt. Die UX des Azure Data Catalog-Portals verwendet dieses Muster für die Beschreibung.
- Ein weiteres Muster ist „Zusammenführen“. Bei diesem Muster werden alle Werte der verschiedenen Benutzer zusammengeführt. Duplikate werden entfernt. Beispiele für dieses Muster in der UX des Azure Data Catalog-Portals sind die Eigenschaften „tags“ und „experts“.
- Ein drittes Muster ist „Letzter Autor ist ausschlaggebend“. Bei diesem Muster wird nur der zuletzt eingegebene Wert angezeigt. Ein Beispiel für dieses Muster ist „friendlyName“.
Assetobjektmodell
Wie bereits im Abschnitt mit den wichtigen Begriffen angedeutet, enthält das Objektmodell von Azure Data Catalog Elemente, bei denen es sich um Assets oder Anmerkungen handeln kann. Elemente besitzen optionale oder erforderliche Eigenschaften. Einige Eigenschaften gelten für alle Elemente. Einige Eigenschaften gelten für alle Assets. Einige Eigenschaften gelten nur für bestimmte Assettypen.
Systemeigenschaften
Eigenschaftenname | Datentyp | Kommentare |
---|---|---|
Zeitstempel | DateTime | Der Zeitpunkt der letzten Änderung des Elements. Dieses Feld wird vom Server generiert, wenn ein Element eingefügt wird, sowie bei jeder Aktualisierung eines Elements. Der Wert dieser Eigenschaft wird bei der Eingabe von Veröffentlichungsvorgängen ignoriert. |
Kennung | Uri | Die absolute URL des Elements (schreibgeschützt). Es handelt sich hierbei um den eindeutig adressierbaren URI für das Element. Der Wert dieser Eigenschaft wird bei der Eingabe von Veröffentlichungsvorgängen ignoriert. |
Typ | String | Der Typ des Assets (schreibgeschützt). |
etag | String | Eine Zeichenfolge entsprechend der Version des Elements, die beim Ausführen von Vorgängen, mit denen Elemente im Katalog aktualisiert werden, für die Steuerung optimistischer Nebenläufigkeit verwendet werden kann. Mit „*“ kann die Übereinstimmung mit einem beliebigen Wert angegeben werden. |
Allgemeine Eigenschaften
Diese Eigenschaften gelten für alle Stammassettypen und für alle Anmerkungstypen.
Eigenschaftenname | Datentyp | Kommentare |
---|---|---|
fromSourceSystem | Boolean | Gibt an, ob Daten des Elements aus einem Quellsystem (z. B. SQL Server-Datenbank, Oracle Database) abgeleitet oder von einem Benutzer erstellt wurden. |
Allgemeine Stammeigenschaften
Diese Eigenschaften gelten für alle Stammassettypen.
Eigenschaftenname | Datentyp | Kommentare |
---|---|---|
name | String | Ein Name, der sich aus den Speicherortinformationen der Datenquelle ableitet. |
dsl | DataSourceLocation | Beschreibt die Datenquelle eindeutig und ist einer der Bezeichner für das Asset. (Siehe Abschnitt zu dualer Identität.) Die DSL-Struktur variiert je nach Protokoll und Quelltyp. |
dataSource | DataSourceInfo | Weitere Informationen zum Typ des Assets. |
lastRegisteredBy | SecurityPrincipal | Beschreibt den Benutzer, der dieses Asset zuletzt registriert hat. Enthält die eindeutige ID für den Benutzer („UPN“) und einen Anzeigenamen („lastName“ und „firstName“). |
containerID | String | Die ID des Containerassets für die Datenquelle. Diese Eigenschaft wird für den Containertyp nicht unterstützt. |
Allgemeine Nicht-Singleton-Anmerkungseigenschaften
Diese Eigenschaften gelten für alle Nicht-Singleton-Anmerkungstypen (Anmerkungen, von denen pro Asset mehrere vorhanden sein können).
Eigenschaftenname | Datentyp | Kommentare |
---|---|---|
Schlüssel | String | Ein benutzerdefinierter Schlüssel, der die Anmerkung in der aktuellen Sammlung eindeutig identifiziert. Die Länge des Schlüssels darf 256 Zeichen nicht überschreiten. |
Stammassettypen
Stammassettypen stellen die verschiedenen Typen von Datenassets dar, die im Katalog registriert werden können. Für jeden Stammtyp gibt es eine Sicht, die die in der Sicht enthaltenen Assets und Anmerkungen beschreibt. Der Sichtname sollte bei der Veröffentlichung eines Assets mithilfe der REST-API im entsprechenden {view_name}-URL-Segment verwendet werden.
Assettyp (Sichtname) | Weitere Eigenschaften | Datentyp | Zulässige Anmerkungen | Kommentare |
---|---|---|---|---|
Tabelle („tables“) | Beschreibung | Eine Tabelle stellt beliebige Tabellendaten dar. Beispiele wären etwa SQL-Tabellen, SQL-Sichten, tabellarische Analysis Services-Tabellen, mehrdimensionale Analysis Services-Dimensionen und Oracle-Tabellen. | ||
FriendlyName | ||||
Tag | ||||
Schema | ||||
ColumnDescription | ||||
ColumnTag | ||||
Experte | ||||
Vorschau | ||||
AccessInstruction | ||||
TableDataProfile | ||||
ColumnDataProfile | ||||
ColumnDataClassification | ||||
Dokumentation | ||||
Kennzahl („measures“) | Beschreibung | Dieser Typ stellt eine Analysis Services-Kennzahl dar. | ||
FriendlyName | ||||
Tag | ||||
Experte | ||||
AccessInstruction | ||||
Dokumentation | ||||
Measure | Spalte | Metadaten zur Beschreibung der Kennzahl. | ||
isCalculated | Boolean | Gibt an, ob es sich um eine berechnete Kennzahl handelt. | ||
measureGroup | String | Gibt an, ob es sich um eine berechnete Kennzahl handelt. | ||
KPI („kpis“) | Beschreibung | |||
FriendlyName | ||||
Tag | ||||
Experte | ||||
AccessInstruction | ||||
Dokumentation | ||||
measureGroup | String | Der physische Container für die Kennzahl. | ||
goalExpression | String | Ein numerischer MDX-Ausdruck oder eine Berechnung, der bzw. die den Zielwert des KPI zurückgibt. | ||
valueExpression | String | Ein numerischer MDX-Ausdruck, der den Ist-Wert des KPI zurückgibt. | ||
statusExpression | String | Ein MDX-Ausdruck, der den Status des KPI zu einem bestimmten Zeitpunkt darstellt. | ||
trendExpression | String | Ein MDX-Ausdruck, der den Wert des KPI im Zeitverlauf auswertet. Der Trend kann ein beliebiges zeitbasiertes Kriterium sein, das in bestimmten geschäftlichen Zusammenhängen nützlich ist. | ||
Bericht („reports“) | Beschreibung | Dieser Typ stellt einen SQL Server Reporting Services-Bericht dar. | ||
FriendlyName | ||||
Tag | ||||
Experte | ||||
AccessInstruction | ||||
Dokumentation | ||||
assetCreatedDate | String | |||
assetCreatedDate | String | |||
assetModifiedDate | String | |||
assetModifiedBy | String | |||
Bericht („reports“) | Beschreibung | Dieser Typ stellt einen Container für andere Objekte dar, z. B. eine SQL-Datenbank, ein Azure-Blobcontainer oder ein Analysis Services-Modell. | ||
Tag | ||||
Experte | ||||
AccessInstruction | ||||
Dokumentation |
Anmerkungstypen
Anmerkungstypen stellen Typen von Metadaten dar, die anderen Typen innerhalb des Katalogs zugewiesen werden können.
Anmerkungstyp (geschachtelter Sichtname) | Weitere Eigenschaften | Datentyp | Kommentare |
---|---|---|---|
Beschreibung („descriptions“) | Diese Eigenschaft enthält eine Beschreibung für ein Asset. Jeder Benutzer des Systems kann eine eigene Beschreibung hinzufügen. Nur dieser Benutzer kann das Beschreibungsobjekt bearbeiten. (Administratoren und Assetbesitzer können das Beschreibungsobjekt löschen, aber nicht bearbeiten.) Die Beschreibungen der Benutzer werden vom System separat verwaltet. Es gibt also ein Array mit Beschreibungen für die einzelnen Assets (eine für jeden Benutzer, der einen Beitrag zu dem Asset geleistet hat, sowie ggf. eine weitere mit Informationen, die sich aus der Datenquelle ableiten). | ||
Beschreibung | string | Eine kurze Beschreibung des Assets (zwei bis drei Zeilen). | |
Tag („tags“) | Diese Eigenschaft definiert ein Tag für ein Asset. Jeder Benutzer des Systems kann mehrere Tags für ein Asset hinzufügen. Nur der Benutzer, der ein Tagobjekt erstellt hat, kann dieses bearbeiten. (Administratoren und Assetbesitzer können das Tagobjekt löschen, aber nicht bearbeiten.) Die Tags der Benutzer werden vom System separat verwaltet. Es gibt daher ein Array von Tagobjekten für jedes Asset. | ||
tag | Zeichenfolge | Ein Tag mit einer Beschreibung des Assets. | |
FriendlyName („friendlyName“) | Diese Eigenschaft enthält einen Anzeigenamen für ein Asset. FriendlyName ist eine Singleton-Anmerkung; einem Asset kann immer nur ein einzelner FriendlyName hinzugefügt werden. Nur der Benutzer, der ein FriendlyName-Objekt erstellt hat, kann dieses bearbeiten. (Administratoren und Assetbesitzer können das FriendlyName-Objekt löschen, aber nicht bearbeiten.) Die Anzeigenamen der Benutzer werden vom System separat verwaltet. | ||
friendlyName | Zeichenfolge | Ein Anzeigename des Assets. | |
FriendlyName („friendlyName“) | Diese Eigenschaft enthält einen Anzeigenamen für ein Asset. FriendlyName ist eine Singleton-Anmerkung; einem Asset kann immer nur ein einzelner FriendlyName hinzugefügt werden. Nur der Benutzer, der ein FriendlyName-Objekt erstellt hat, kann dieses bearbeiten. (Administratoren und Assetbesitzer können das FriendlyName-Objekt löschen, aber nicht bearbeiten.) Die Anzeigenamen der Benutzer werden vom System separat verwaltet. | ||
friendlyName | Zeichenfolge | Ein Anzeigename des Assets. | |
Schema („schema“) | Das Schema beschreibt die Struktur der Daten. Es listet die Namen, Typen und andere Metadaten des Attributs (Spalte, Attribut, Feld usw.) auf. Diese Informationen werden alle von der Datenquelle abgeleitet. Das Schema ist eine Singleton-Anmerkung; für ein Asset kann immer nur ein einzelnes Schema kann hinzugefügt werden. | ||
Spalten | Column[] | Ein Array mit Spaltenobjekten. Diese beschreiben die Spalte mit aus der Datenquelle abgeleiteten Informationen. | |
ColumnDescription („columnDescriptions“) | Diese Eigenschaft enthält eine Beschreibung für eine Spalte. Jeder Benutzer des Systems kann seine eigenen Beschreibungen für mehrere Spalten hinzufügen (höchstens eine pro Spalte). Nur der Benutzer, der ein ColumnDescription-Objekt erstellt hat, kann dieses bearbeiten. (Administratoren und Assetbesitzer können das ColumnDescription-Objekt löschen, aber nicht bearbeiten.) Die Spaltenbeschreibungen dieses Benutzers werden vom System separat verwaltet. Es gibt daher ein Array mit ColumnDescription-Objekten für die einzelnen Assets (eins für jeden Benutzer, der einen Beitrag zu der Spalte geleistet hat, sowie ggf. ein weiteres mit Informationen, die aus der Datenquelle abgeleitet wurde). Da die ColumnDescription nur lose an das Schema gebunden ist, kann es vorkommen, dass Beschreibung und Schema nicht mehr synchron sind. Die ColumnDescription kann eine Spalte beschreiben, die im Schema nicht mehr vorhanden ist. Der Autor oder die Autorin muss sicherstellen, dass Beschreibung und Schema synchron sind. Die Datenquelle kann auch beschreibende Spalteninformationen enthalten. Hierbei handelt es sich um zusätzliche ColumnDescription-Objekte, die beim Ausführen des Tools erstellt werden. | ||
columnName | String | Der Name der Spalte, auf die sich diese Beschreibung bezieht. | |
Beschreibung | String | Eine kurze Beschreibung der Spalte (zwei bis drei Zeilen). | |
ColumnTag („columnTags“) | Diese Eigenschaft enthält ein Tag für eine Spalte. Jeder Benutzer des Systems kann mehrere Tags für eine bestimmte Spalte sowie Tags für mehrere Spalten hinzufügen. Nur der Benutzer, der ein ColumnTag-Objekt erstellt hat, kann dieses bearbeiten. (Administratoren und Assetbesitzer können das ColumnTag-Objekt löschen, aber nicht bearbeiten.) Die Spaltentags dieser Benutzer werden vom System separat verwaltet. Es gibt daher ein Array von ColumnTag-Objekten für jedes Asset. Da das ColumnTag nur lose an das Schema gebunden ist, kann es vorkommen, dass Tag und Beschreibung nicht mehr synchron sind. Das ColumnTag kann eine Spalte beschreiben, die im Schema nicht mehr vorhanden ist. Der Autor muss sicherstellen, dass Spaltentag und Schema synchron sind. | ||
columnName | String | Der Name der Spalte, auf die sich dieses Tag bezieht. | |
tag | String | Ein Tag mit einer Beschreibung der Spalte. | |
Experte („experts“) | Diese Eigenschaft enthält einen Benutzer, der im Dataset als Experte angesehen wird. Expertenmeinungen (Beschreibungen) werden auf der Benutzeroberfläche zuerst aufgelistet. Jeder Benutzer kann eigene Experten angeben. Nur dieser Benutzer kann das Expertenobjekt bearbeiten. (Administratoren/Administratorinnen und Ressourcenbesitzer/-besitzerinnen können Expertenobjekte löschen, aber nicht bearbeiten.) | ||
Experte | SecurityPrincipal | ||
Vorschau („previews“) | Die Vorschau enthält eine Momentaufnahme der Top-20-Datenzeilen für das Asset. Sie ist nur für einige Assettypen sinnvoll. (Eine Vorschau ist sinnvoll für eine Tabelle, nicht aber für eine Kennzahl.) | ||
Vorschau | object[] | Ein Array mit Objekten, das eine Spalte darstellt. Jedes Objekt besitzt eine Eigenschaftenzuordnung zu einer Spalte mit einem Spaltenwert für die Zeile. | |
AccessInstruction („accessInstructions“) | |||
mimeType | Zeichenfolge | Der MIME-Typ des Inhalts. | |
content | Zeichenfolge | Die Anweisungen für den Zugriff auf dieses Datenasset. Der Inhalt kann eine URL, eine E-Mail-Adresse oder ein Satz von Anweisungen sein. | |
TableDataProfile („tableDataProfiles“) | |||
numberOfRows | int | Die Anzahl der Zeilen im Dataset. | |
size | long | Die Größe des Datasets in Bytes. | |
schemaModifiedTime | Zeichenfolge | Der Zeitpunkt der letzten Schemaänderung. | |
dataModifiedTime | Zeichenfolge | Der Zeitpunkt der letzten Datasetänderung. (Daten wurden hinzugefügt, geändert oder gelöscht.) | |
ColumnsDataProfile („columnsDataProfiles“) | |||
Spalten | ColumnDataProfile[] | Ein Array von Spaltendatenprofilen. | |
ColumnDataClassification ("columnDataClassifications") | |||
columnName | String | Der Name der Spalte, auf die sich diese Klassifizierung bezieht. | |
Klassifizierung | String | Die Klassifizierung der Daten in dieser Spalte. | |
Dokumentation („documentation“) | Einem bestimmten Asset kann nur eine Dokumentation zugeordnet sein. | ||
mimeType | Zeichenfolge | Der MIME-Typ des Inhalts. | |
content | Zeichenfolge | Der Inhalt der Dokumentation. |
Allgemeine Typen
Allgemeine Typen können als Typen für Eigenschaften verwendet werden, sind aber keine Elemente.
Allgemeiner Typ | Eigenschaften | Datentyp | Kommentare |
---|---|---|---|
DataSourceInfo | sourceType | Zeichenfolge | Beschreibt die Art der Datenquelle. Beispiele: SQL Server, Oracle-Datenbank usw. |
objectType | Zeichenfolge | Beschreibt die Art des Objekts in der Datenquelle. Beispiele: Tabelle oder Sicht für SQL Server | |
DataSourceLocation | protocol | Zeichenfolge | Erforderlich. Beschreibt ein Protokoll für die Kommunikation mit der Datenquelle. Beispiele hierfür sind tds für SQL Server und oracle für Oracle. Die Liste der derzeit unterstützten Protokolle finden Sie unter Datenquellenreferenz: DSL-Struktur. |
address | Dictionary<Zeichenfolge,Objekt> | Erforderlich. Bei „address“ handelt es sich um eine protokollspezifische Gruppe von Daten zur Identifizierung der Datenquelle, auf die verwiesen wird. Die für ein bestimmtes Protokoll gültigen Adressdaten, d. h. ohne Kenntnis des Protokolls bedeutungslos. | |
authentication | Zeichenfolge | Optional. Das Authentifizierungsschema, das zur Kommunikation mit der Datenquelle verwendet wird. Beispiele: windows, oauth, usw. | |
connectionProperties | Dictionary<Zeichenfolge,Objekt> | Optional. Weitere Informationen zum Herstellen einer Verbindung mit einer Datenquelle. | |
DataSourceLocation | Das Back-End überprüft die angegebenen Eigenschaften während der Veröffentlichung nicht in Microsoft Entra ID. | ||
upn | Zeichenfolge | Erforderlich. Eindeutige E-Mail-Adresse des Benutzers. Muss angegeben werden, wenn keine Objekt-ID angegeben wurde, oder im Zusammenhang mit der Eigenschaft „lastRegisteredBy“, andernfalls optional. | |
objectId | Guid | Optional. Benutzer- oder Sicherheitsgruppenidentität in Microsoft Entra. Optional. Muss angegeben werden, wenn kein UPN angegeben wurde, andernfalls optional. | |
firstName | Zeichenfolge | Der Vorname des Benutzers (für die Anzeige). Optional. Nur im Kontext der Eigenschaft „lastRegisteredBy“ gültig. Kann bei der Bereitstellung eines Sicherheitsprinzipals für Rollen, Berechtigungen und Experten nicht angegeben werden. | |
lastName | Zeichenfolge | Der Nachname des Benutzers (für die Anzeige). Optional. Nur im Kontext der Eigenschaft „lastRegisteredBy“ gültig. Kann bei der Bereitstellung eines Sicherheitsprinzipals für Rollen, Berechtigungen und Experten nicht angegeben werden. | |
Spalte | name | Zeichenfolge | Der Name der Spalte oder des Attributs. |
Typ | Zeichenfolge | Der Datentyp der Spalte oder des Attributs. Die zulässigen Typen hängen vom Datenquellentyp des Assets ab. Nur eine Teilmenge von Typen wird unterstützt. | |
maxLength | int | Die maximal zulässige Länge für die Spalte oder das Attribut. Abgeleitet von der Datenquelle. Gilt nur für einige Datenquellentypen. | |
precision | int | Die Genauigkeit für die Spalte oder das Attribut. Abgeleitet von der Datenquelle. Gilt nur für einige Datenquellentypen. | |
isNullable | isNullable | Gibt an, ob die Spalte einen Nullwert enthalten kann. Abgeleitet von der Datenquelle. Gilt nur für einige Datenquellentypen. | |
expression | Zeichenfolge | Wenn es sich bei dem Wert um eine berechnete Spalte handelt, enthält dieses Feld den Ausdruck, der den Wert angibt. Abgeleitet von der Datenquelle. Gilt nur für einige Datenquellentypen. | |
ColumnDataProfile | columnName | Zeichenfolge | Name der Spalte. |
Typ | Zeichenfolge | Der Typ der Spalte. | |
min | Zeichenfolge | Der Mindestwert im Dataset. | |
max | Zeichenfolge | Der Höchstwert im Dataset. | |
avg | double | Der durchschnittliche Wert im Dataset. | |
stdev | double | Die Standardabweichung für das Dataset | |
nullCount | int | Die Anzahl der Nullwerte im Dataset. | |
distinctCount | int | Die Anzahl der unterschiedlichen Werte im Dataset. |
Assetidentität
Azure Data Catalog verwendet „protocol“ und Identitätseigenschaften aus dem Eigenschaftenbehälter „address“ der DataSourceLocation-Eigenschaft „dsl“, um die Identität des Assets zu generieren, die verwendet wird, um das Asset im Katalog zu adressieren. Das TDS-Protokoll (Tabular Data Stream) beispielsweise besitzt die Identitätseigenschaften „server“, „database“, „schema“ und „object“. Die Kombinationen der Protokoll- und Identitätseigenschaften werden verwendet, um die Identität des SQL Server-Tabellenassets zu generieren. Azure Data Catalog enthält verschiedene integrierte Datenquellenprotokolle, die unter Von Azure Data Catalog unterstützte Datenquellenaufgeführt sind. Der Satz der unterstützten Protokolle kann programmgesteuert erweitert werden. (Weitere Informationen finden Sie in der Data Catalog-REST-API-Referenz.) Administratoren des Katalogs können benutzerdefinierte Datenquellenprotokolle registrieren. In der folgenden Tabelle werden die Eigenschaften beschrieben, die erforderlich sind, um ein benutzerdefiniertes Protokoll zu registrieren:
Benutzerdefinierte Datenquellenprotokoll-Spezifikation
Es gibt drei verschiedene Spezifikationstypen für Datenquellenprotokolle. Nachfolgend sind die Typen aufgeführt, gefolgt von einer Tabelle mit ihren Eigenschaften.
DataSourceProtocol
Eigenschaften | Datentyp | Kommentare |
---|---|---|
namespace | Zeichenfolge | Der Namespace des Protokolls. Der Namespace muss zwischen 1 und 255 Zeichen lang sein, mindestens ein nicht leeres Teil enthalten, die Teile müssen durch den Punkt (.) getrennt sein. Jeder Teil muss zwischen 1 und 255 Zeichen lang sein, mit einem Buchstaben beginnen und darf nur Buchstaben und Zahlen enthalten. |
name | Zeichenfolge | Der Name des Protokolls. Der Name muss zwischen 1 und 255 Zeichen lang sein, mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen und den Gedankenstrich (-) enthalten. |
identityProperties | DataSourceProtocolIdentityProperty[] | Liste der Identitätseigenschaften, muss mindestens eine, darf jedoch nicht mehr als 20 Eigenschaften enthalten. Beispiel: „server“, „database“, „schema“, „object“ sind die Identitätseigenschaften des „tds“-Protokolls. |
identitySets | DataSourceProtocolIdentitySet[] | Liste der Identitätssätze. Definiert Sätze von Identitätseigenschaften, die die gültige Identität des Assets darstellen. Muss mindestens einen, darf jedoch nicht mehr als 20 Sätze enthalten. Beispiel: {"server", "database", "schema" and "object"} ist ein Identitätssatz für das TDS-Protokoll, der die Identität von SQL Server-Tabellenassets definiert. |
DataSourceProtocolIdentityProperty
Eigenschaften | Datentyp | Kommentare |
---|---|---|
name | Zeichenfolge | Der Name der Eigenschaft. Der Name muss zwischen 1 und 100 Zeichen lang sein, mit einem Buchstaben beginnen und darf nur Buchstaben und Zahlen enthalten. |
Typ | Zeichenfolge | Den Typ der Eigenschaft. Unterstützte Werte: „bool“, „boolean“, „byte“, „guid“, „int“, „integer“, „long“, „string“, „url“ |
ignoreCase | bool | Gibt an, ob bei Verwendung des Eigenschaftswerts die Groß-/Kleinschreibung ignoriert werden soll. Kann nur für Eigenschaften vom Typ „string“ angegeben werden. Der Standardwert ist „falsch“. |
urlPathSegmentsIgnoreCase | bool[] | Gibt an, ob für jedes Segment des URL-Pfads die Groß-/Kleinschreibung ignoriert werden soll. Kann nur für Eigenschaften vom Typ „url“ angegeben werden. Der Standardwert ist [false]. |
DataSourceProtocolIdentitySet
Eigenschaften | Datentyp | Kommentare |
---|---|---|
name | Zeichenfolge | Der Name des Identitätssatzes. |
properties | string[] | Die Liste der in diesem Identitätssatz enthaltenen Identitätseigenschaften. Sie darf keine Duplikate enthalten. Jede Eigenschaft, auf die der Identitätssatz verweist, muss in der Liste der „identityProperties“ des Protokolls definiert werden. |
Rollen und Autorisierung
Microsoft Azure Data Catalog bietet Autorisierungsfunktionen für asset- und anmerkungsbezogene CRUD-Vorgänge.
Azure Data Catalog verwendet zwei Autorisierungsmechanismen:
- Rollenbasierte Autorisierung
- Berechtigungsbasierte Autorisierung
Rollen
Drei Rollen stehen zur Verfügung: Administrator, Besitzer und Mitwirkender. Jede Rolle hat ihren eigenen Umfang und ihre eigenen Rechte. Diese werden in der folgenden Tabelle zusammengefasst:
Rolle | Bereich | Rechte |
---|---|---|
Administrator | Katalog (alle Assets/Anmerkungen im Katalog) | Read, Delete, ViewRoles, ChangeOwnership, ChangeVisibility, ViewPermissions |
Besitzer | Jedes Asset (Stammelement) | Read, Delete, ViewRoles, ChangeOwnership, ChangeVisibility, ViewPermissions |
Mitwirkender | Jedes einzelne Asset und jede einzelne Anmerkung | Read*, Update, Delete, ViewRoles |
Hinweis
*Wird dem Mitwirkenden die Leseberechtigung (Read) für das Objekt entzogen, werden ihm auch die anderen Rechte entzogen.
Hinweis
Die Rechte Read, Update, Delete und ViewRoles gelten für jedes Element (Asset oder Anmerkung), während die Rechte TakeOwnership, ChangeOwnership, ChangeVisibility und ViewPermissions nur für das Stammasset gelten. Delete gilt für ein Element sowie für alle dazugehörigen untergeordneten Elemente. Beim Löschen eines Assets werden also beispielsweise auch sämtliche Anmerkungen für dieses Asset gelöscht.
Berechtigungen
Eine Berechtigung ist eine Liste mit Zugriffssteuerungseinträgen. Jeder Zugriffssteuerungseintrag weist einem Sicherheitsprinzipal eine Gruppe von Rechten zu. Berechtigungen können nur für ein Asset (Stammelement) angegeben werden und gelten für das Asset und alle dazugehörigen untergeordneten Elemente.
In der Vorschauversion von Azure Data Catalog wird in der Berechtigungsliste nur das Recht Read unterstützt, um die Einschränkung der Sichtbarkeit eines Assets zu ermöglichen.
Standardmäßig ist jeder authentifizierte Benutzer zum Lesen aller Elemente im Katalog berechtigt, es sei denn, die Sichtbarkeit ist auf die Gruppe von Prinzipalen in den Berechtigungen beschränkt.
REST-API
Mit den Sichtelementanforderungen PUT und POST können Sie Rollen und Berechtigungen steuern. Neben der Elementnutzlast können zwei Systemeigenschaften angegeben werden: roles und permissions.
Hinweis
permissions gilt nur für ein Stammelement. Besitzer gilt nur für ein Stammelement. Bei der Erstellung eines Elements im Katalog wird standardmäßig der entsprechende Mitwirkende als derzeit authentifizierter Benutzer festgelegt. Soll ein Element für jeden Benutzer aktualisierbar sein, muss Mitwirkender in der Eigenschaft roles bei der Erstveröffentlichung des Elements auf den speziellen Sicherheitsprinzipal <Everyone> festgelegt werden (wie im folgenden Beispiel zu sehen). Mitwirkender kann nicht geändert werden (auch nicht vom Administrator oder Besitzer) und bleibt während der gesamten Lebensdauer eines Elements unverändert. Der einzige unterstützte Wert zum expliziten Festlegen des Mitwirkenden ist <Everyone>: Der Mitwirkende kann also nur ein Benutzer, der ein Element erstellt hat, oder <Everyone> sein.
Beispiele
Festlegen des Mitwirkenden auf <Everyone> beim Veröffentlichen eines Elements.
Die Objekt-ID des speziellen Sicherheitsprinzipals <Everyone> lautet „00000000-0000-0000-0000-000000000201“.
POSThttps://api.azuredatacatalog.com/catalogs/default/views/tables/?api-version=2016-03-30
Hinweis
Einige HTTP-Clientimplementierungen können Anforderungen als Reaktion auf eine 302-Antwort vom Server neu ausstellen, in der Regel werden die Autorisierungsheader jedoch aus der Anforderung entfernt. Der Autorisierungsheader ist für Anforderungen an Azure Data Catalog erforderlich. Vergewissern Sie sich daher, dass der Autorisierungsheader noch vorhanden ist, wenn eine Anforderung an einen von Azure Data Catalog festgelegten Umleitungsort neu ausgestellt wird. Dies wird im folgenden Beispielcode mithilfe des Objekts „.NET HttpWebRequest“ veranschaulicht.
Body
{
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
]
}
Zuweisen von Besitzern und Einschränken der Sichtbarkeit für ein vorhandenes Stammelement: PUThttps://api.azuredatacatalog.com/catalogs/default/views/tables/042297b0...1be45ecd462a?api-version=2016-03-30
{
"roles": [
{
"role": "Owner",
"members": [
{
"objectId": "c4159539-846a-45af-bdfb-58efd3772b43",
"upn": "user1@contoso.com"
},
{
"objectId": "fdabd95b-7c56-47d6-a6ba-a7c5f264533f",
"upn": "user2@contoso.com"
}
]
}
],
"permissions": [
{
"principal": {
"objectId": "27b9a0eb-bb71-4297-9f1f-c462dab7192a",
"upn": "user3@contoso.com"
},
"rights": [
{
"right": "Read"
}
]
},
{
"principal": {
"objectId": "4c8bc8ce-225c-4fcf-b09a-047030baab31",
"upn": "user4@contoso.com"
},
"rights": [
{
"right": "Read"
}
]
}
]
}
Hinweis
Bei „PUT“ muss im Text keine Elementnutzlast angegeben werden: „PUT“ kann zur reinen Aktualisierung von Rollen und/oder Berechtigungen verwendet werden.