Tabellen
Mithilfe von Tabellen definieren Sie die Struktur Ihrer Daten.
Sie können neue Daten in Ihre Tabellen laden oder an einem vorhandenen Speicherort auf Daten verweisen. Sie können feingranulierte Zugriffskontrollberechtigungen für Tabellen definieren, indem Sie Tabellenberechtigungen erstellen. Weitere Informationen finden Sie unter Tabellen-Berechtigungen.
Informationen zum Freigeben einer Tabelle finden Sie unter Daten freigeben.
Tabellen können entweder verwaltet oder extern verwaltet werden.
Verwaltete Tabellen
Eine verwaltete Tabelle definiert eine Struktur für Daten, die in AI Data Platform gespeichert sind und nur von AI Data Platform-Benutzern aufgerufen werden können.
Wenn Sie eine verwaltete Tabelle löschen, werden die Tabellendefinition und die Tabellendaten gelöscht.
Externe Tabellen
Eine externe Tabelle definiert eine Struktur für Daten, die an einem Speicherort gespeichert sind, der nicht von Oracle AI Data Platform verwaltet wird. Wenn Sie eine externe Tabelle in AI Data Platform erstellen, wird der Metadatenlebenszyklus von AI Data Platform verwaltet. Wenn Sie eine externe Tabelle löschen, wird nur die Tabellendefinition gelöscht. Die von der externen Tabelle referenzierten Daten werden nicht gelöscht.
Stellen Sie sicher, dass Ihre Benutzer über die folgenden IAM-Policys verfügen, die zum Erstellen externer Tabellen erforderlich sind:
allow group <GroupName> to read buckets in compartment id <external-data-CompartmentId>
allow group <GroupName> to inspect objects in compartment id <external-data-CompartmentId>Für externe Tabellen sind zusätzliche IAM-Policys erforderlich. Weitere Informationen finden Sie unter IAM-Policys für Oracle AI Data Platform.
Unterstützte Tabellenformate
Tabellen können dateibasierte Formate wie CSV, JSON, Avro, Parquet und ORC oder Transaktionstabellenformate wie Delta und Apache Iceberg verwenden. Iceberg-Tabellen verwenden die Hadoop-Katalogimplementierung, um Tabellenmetadaten in Oracle Cloud Infrastructure Object Storage zu verwalten.
| Formatieren | Beschreibung | Verwendung |
|---|---|---|
| Durch Komma getrennte Werte (CSV) | Die Daten werden als Textdatei mit einem angegebenen zeilenbasierten Dateiformat gespeichert, um die Daten zu strukturieren. Normalerweise ist die erste Zeile in der Datei eine Kopfzeile, die Spaltennamen für die Daten enthält. | Wird zum Austausch von tabellarischen Daten zwischen Systemen verwendet. Jede Zeile in der Datei ist eine Zeile in einer Tabelle. |
| JavaScript Object Notation (JSON) | Daten werden in einem textbasierten Standardformat gespeichert, um strukturierte Daten basierend auf der JavaScript-Objektsyntax darzustellen. JSON unterstützt Listen mit Objekten oder hierarchischen Strukturen. | Wird in Stream-Anwendungen verwendet. JSON vereinfacht die Speicherung von zugehörigen Daten mit komplexen Beziehungen in einem einzigen Dokument und vermeidet eine chaotische Listenkonvertierung in ein relationales Datenmodell. Beachten Sie, dass JSON nicht teilbar ist. |
| Avro | Daten werden in einem zeilenbasierten Binärformat gespeichert, während das Schema im JSON-Format gespeichert wird, um die Dateigröße zu minimieren und die Effizienz zu maximieren. Avro unterstützt die Schemaentwicklung zuverlässig, indem es hinzugefügte, fehlende und geänderte Felder verwaltet. Dadurch kann alte Software neue Daten lesen und neue Software alte Daten lesen. Wird auch als Datenserialisierungssystem bezeichnet. | Wird für die Datenspeicherung verwendet, da Avro-Dateien teilbar und komprimierbar sind. Der serialisierte zeilenbasierte Speicher ist ideal für umfangreiche Schreibtransaktionen, wie das Einfügen von Daten in die AI Data Platform. Avro ist auch eine gute Wahl, wenn die Schemaentwicklung bei Schreibvorgängen mit hoher Geschwindigkeit kritisch ist. |
| Parquet | Die Daten werden in einem spaltenförmigen Datenformat gespeichert und sind hochkomprimierbar und spaltbar. Parkett ist für das Paradigma Write Once Read Many (WORM) optimiert. Es schreibt langsam, liest aber unglaublich schnell, besonders wenn Sie nur auf eine Teilmenge von Spalten zugreifen. | Wird zur Lösung von Big Data-Problemen verwendet, da Komprimierungsalgorithmen mit dem Spaltendatenformat besser funktionieren. Sie können Big Data in verschiedenen Formaten speichern, wie Bildern, Videos, Dokumenten und strukturierten Datentabellen. Parkett ist eine gute Wahl für schwere Arbeitslasten beim Lesen von Datenteilen. Beispiel: Wenn das Dataset viele Spalten enthält, Sie aber nur auf eine Teilmenge von Spalten zugreifen möchten. Ideal, wenn Sie von Spark abhängig sind oder wenn mehrere Services auf dieselben in Object Storage gespeicherten Daten zugreifen sollen. |
| Optimierte Zeilenspalte (ORC) | Daten werden in Zusammenstellungen von Zeilen in einer einzelnen Datei im Spaltenformat gespeichert. | Wird für die parallele Verarbeitung von Zeilen-Collections in einem Cluster verwendet. Ideal, wenn Lesetransaktionen mehr sind als Schreibtransaktionen oder wenn die Komprimierung Priorität hat. |
| Delta-Lake | Daten werden in einem spaltenförmigen Format gespeichert, das Parquet-Datendateien um ein JSON-dateibasiertes Transaktionslog für ACID-Transaktionen und skalierbare Metadatenbehandlung erweitert. | Wird für die Transaktionsunterstützung verwendet. |
| Iceberg | Ein offenes Tabellenformat, das Parquet-Datendateien über versionierte Metadaten, Manifeste und Snapshots verwaltet. AI Data Platform verwendet die Iceberg Hadoop-Katalogimplementierung. | Wird für ACID-Transaktionen, gleichzeitige Lese- und Schreibvorgänge, Schema- und Partitionsentwicklung, Zeitreiseabfragen, Aktualisierungen auf Zeilenebene, Upserts und Snapshot-Verwaltung verwendet. |
Unterstützte Datentypen
| Datentyp | Beschreibung |
|---|---|
| Byte-Typ | Stellt vorzeichenbehaftete 1-Byte-Ganzzahlen dar. Der Zahlenbereich liegt zwischen -128 und 127. |
| Kurztyp | Stellt vorzeichenbehaftete 2-Byte-Ganzzahlen dar. Der Zahlenbereich liegt zwischen -32768 und 32767. |
| Ganzzahltyp | Stellt vorzeichenbehaftete 4-Byte-Ganzzahlen dar. Der Zahlenbereich liegt zwischen -2147483648 und 2147483647. |
| Long-Typ | Stellt vorzeichenbehaftete 8-Byte-Ganzzahlen dar. Der Zahlenbereich reicht von -9223372036854775808 bis 9223372036854775807. |
| Float-Typ | Stellt Gleitkommazahlen mit einer 4-Byte-Präzision dar. |
| DoubleType | Stellt Gleitkommazahlen mit doppelter Genauigkeit von 8 Byte dar. |
| Dezimaltyp | Stellt mit Vorzeichen versehene Dezimalzahlen mit beliebiger Genauigkeit dar. Wird intern von java.math.BigDecimal unterstützt. Ein BigDecimal-Wert besteht aus einem unskalierten Ganzzahlwert mit beliebiger Genauigkeit und einer 32-Bit-Ganzzahlskala. |
| Stringtyp | Stellt Zeichenfolgenwerte dar. |
| VarcharType (Länge) | Eine Variante von StringType mit einer Längenbegrenzung. Das Schreiben von Daten schlägt fehl, wenn die Eingabezeichenfolge die Längenbegrenzung überschreitet. |
| CharType (Länge) | Eine Variante von VarcharType (Länge), die feste Länge ist. Beim Lesen der Spalte vom Typ CharType(n) werden immer Zeichenfolgenwerte der Länge n zurückgegeben. Beim Vergleich der Eigenschaftstypspalte wird die kurze Spalte auf die längere Länge aufgefüllt. |
| Binärtyp | Stellt Bytefolgenwerte dar. |
| Boolescher Typ | Stellt boolesche Werte dar. |
| Datumstyp | Stellt Werte dar, die Werte der Felder Jahr, Monat und Tag ohne Zeitzone enthalten. |
| TimestampType | Ein Zeitstempel mit lokaler Zone (TIMESTAMP_LTZ). Es stellt Werte dar, die Werte der Felder Jahr, Monat, Tag, Stunde, Minute und Sekunde mit der lokalen Zeitzone der Session enthalten. Der Zeitstempelwert stellt einen absoluten Zeitpunkt dar. |
| ZeitstempelNTZType | Ein Zeitstempel ohne Zeitzone (TIMESTAMP_NTZ). Es stellt Werte dar, die Werte aus den Feldern Jahr, Monat, Tag, Stunde, Minute und Sekunde enthalten. Alle Vorgänge werden ohne Berücksichtigung einer Zeitzone durchgeführt. |
| YearMonthIntervalType (startField, endField) | Stellt ein Jahr-Monatsintervall dar, das aus einer zusammenhängenden Teilmenge von MONAT, Monaten innerhalb von Jahren [0..11] und JAHR, Jahren im Bereich [0..178956970] besteht. |
| DayTimeIntervalType (startField, endField) | Stellt ein Tagesintervall dar, das aus einer zusammenhängenden Teilmenge von SECOND, Sekunden innerhalb von Minuten und möglicherweise Bruchteilen einer Sekunde besteht [0..59.999999], MINUTE, Minuten innerhalb von Stunden [0..59], STUNDEN, Stunden innerhalb von Tagen [0..23] und TAG, Tage im Bereich [0..106751991]. |
| ArrayType(elementType, containsNull) | Stellt Werte dar, die eine Folge von Elementen mit dem Typ elementType enthalten. containsNull wird verwendet, um anzugeben, ob Elemente in einem ArrayType-Wert Nullwerte aufweisen können. |
| MapType(keyType, valueType, valueContainsNull) | Stellt Werte dar, die aus einer Gruppe von Schlüssel/Wert-Paaren bestehen. Der Datentyp der Schlüssel wird durch keyType beschrieben, und der Datentyp der Werte wird durch valueType beschrieben. Bei einem MapType-Wert dürfen Schlüssel keine Nullwerte aufweisen. Mit valueContainsNull wird angegeben, ob Werte eines MapType-Wertes Nullwerte aufweisen können. |
| StructType(Felder) | Stellt Werte mit der Struktur dar, die durch eine Folge von StructFields (Feldern) beschrieben wird. |
| StructField(Name, dataType, auf Null setzbar) | Stellt ein Feld in einem StructType dar. Der Name eines Feldes wird durch den Namen angegeben. Der Datentyp eines Feldes wird durch dataType angegeben. Dieser Wert wird verwendet, um anzugeben, ob Werte dieser Felder Nullwerte aufweisen können. |
Einschränkungen
Die folgenden Einschränkungen gelten für Tabellen in AI Data Platform:
- Sie können keine externe Tabelle für Datendateien oder Verzeichnisse innerhalb oder auf einem Volume definieren.
- Sie können keine externe Tabelle in einem Bucket oder seinem Verzeichnis definieren, die bereits für eine andere externe Tabelle oder ein externes Volume verwendet wird
- Ansichten können nicht im Masterkatalog angezeigt oder aufgelistet werden.
Schemaentwicklung
Mit der Schemaentwicklung in Oracle AI Data Platform können Benutzer mit den erforderlichen Berechtigungen eine verwaltete Tabelle mit SQL in einem Notizbuch aktualisieren.
Dies ist nützlich, wenn sich eine Tabellendefinition im Laufe der Zeit ändert, um neue Spalten, entfernte Spalten, umbenannte Spalten, Partitionsänderungen oder Tabellenumbenennungen zu unterstützen, ohne das Dataset neu zu erstellen. Die unterstützten Formate sind Parquet, Avro, Delta und Iceberg.
Unterstützte Operationen
Die folgenden Schemaentwicklungsvorgänge wurden für verwaltete Tabellen analysiert:
| Vorgang | Delta | Parquet | Avro | Iceberg |
|---|---|---|---|---|
| Tabelle umbenennen | Unterstützt | Unterstützt | Unterstützt | Unterstützt |
| Spalten hinzufügen | Unterstützt | Unterstützt | Unterstützt | Unterstützt |
| Spalten löschen | Unterstützt | Nicht unterstützt | Nicht unterstützt | Unterstützt |
| Spalten ändern oder umbenennen | Unterstützt | Nicht unterstützt | Nicht unterstützt | Unterstützt |
| Spalten ersetzen | Unterstützt | Nicht unterstützt | Nicht unterstützt | Unterstützt |
| Partitionen hinzufügen | Partitionen werden automatisch erstellt, wenn Daten geschrieben werden. Sie können keine einzelnen Partitionen über DDL hinzufügen. | Unterstützt durch DDL | Unterstützt durch DDL | Partitionen werden automatisch erstellt, wenn Daten geschrieben werden. Sie können keine einzelnen Partitionen über DDL hinzufügen. Sie können der Partitionsspezifikation mit ALTER TABLE ... ADD PARTITION FIELD Felder hinzufügen.
|
| Partitionen löschen | Entfernen Sie die relevanten Daten, und führen Sie VACUUM aus.
|
Unterstützt | Unterstützt | Sie können einzelne Partitionen nicht über DDL löschen. Löschen Sie stattdessen die relevanten Zeilen. Sie können Felder mit ALTER TABLE ... DROP PARTITION FIELD aus der Partitionsspezifikation entfernen.
|
| Datentyp ändern | Möglicherweise ist eine CTAS- oder Overrite-Schema-Workaround erforderlich. | Nicht unterstützt | Nicht unterstützt | Wird nur für Promotions mit kompatiblen Typen unterstützt, wie INT bis BIGINT, FLOAT to DOUBLE, und erhöht die Dezimalgenauigkeit bis ALTER TABLE. Eingeschränkte und inkompatible Konvertierungen werden nicht unterstützt.
|
Verwaltete Tabelle erstellen
Sie können eine verwaltete Tabelle erstellen, in der strukturierte Daten für das von Ihnen verwaltete Schema gespeichert werden.
Externe Tabelle erstellen
Sie können eine externe Tabelle erstellen, um Daten direkt in OCI Object Storage abzufragen, ohne die Daten in Oracle AI Data Platform zu verschieben oder zu duplizieren.
Tabellen-Details anzeigen
Sie können die Details einer Tabelle anzeigen, um deren Konfiguration und Metadaten zu prüfen.
Auf der Registerkarte Details für eine Tabelle werden der Tabellenschlüssel, der Typ und das Format sowie der Zeitpunkt und der Zeitpunkt der Erstellung und letzten Aktualisierung der Tabelle angezeigt. Außerdem werden die Tabelleneigenschaften angezeigt.
- Klicken Sie im linken Navigationsbereich auf
Masterkatalog. - Blenden Sie im Hauptkatalogbaum den Katalog und das Schema ein, das die Tabelle enthält, die Sie anzeigen möchten, und klicken Sie dann auf Tabellen.
- Suchen Sie in der Registerkarte "Tabellen" die Tabelle, und klicken Sie auf
Aktionen, Anzeigen. - Klicken Sie auf Details.
Tabelle umbenennen
Sie können eine Tabelle, die Sie verwalten, umbenennen, wenn sich deren Inhalt oder Zweck geändert hat.
Hinweis:
Bearbeitungen an externen Tabellen in Oracle AI Data Platform werden nicht in den Remotekatalog in OCI Object Storage übertragen.- Klicken Sie im linken Navigationsbereich auf
Masterkatalog. - Blenden Sie im Hauptkatalogbaum den Katalog und das Schema ein, das die zu bearbeitende Tabelle enthalten, und klicken Sie auf Tabellen.
- Suchen Sie in der Registerkarte "Tabellen" die Tabelle, und klicken Sie auf
Aktionen und dann auf Umbenennen. - Bearbeiten Sie den Tabellennamen, und drücken Sie die Eingabetaste.
Tabellenbeschreibung bearbeiten
Sie können die Beschreibung einer Tabelle ändern, die Sie verwalten, wenn sich deren Inhalt oder Zweck geändert hat.
Hinweis:
Bearbeitungen an externen Tabellen in Oracle AI Data Platform werden nicht in den Remotekatalog in OCI Object Storage übertragen.- Klicken Sie im linken Navigationsbereich auf
Masterkatalog. - Blenden Sie im Hauptkatalogbaum den Katalog und das Schema ein, in dem die zu bearbeitende Tabelle enthalten ist, und klicken Sie auf Tabellen.
- Suchen Sie in der Registerkarte "Tabellen" die Tabelle, und klicken Sie auf
Aktionen und dann auf Beschreibung bearbeiten. - Bearbeiten Sie die Tabellenbeschreibung, und klicken Sie auf Speichern.
Tabellen löschen
Sie können eine Tabelle aus einem Schema löschen, das Sie verwalten, wenn sie nicht mehr benötigt wird.
Hinweis:
Die Daten in OCI Object Storage, die von einer externen Tabelle referenziert werden, werden nicht gelöscht.- Klicken Sie im linken Navigationsbereich auf
Masterkatalog. - Blenden Sie im Hauptkatalogbaum den Katalog und das Schema ein, in dem die zu löschende Tabelle enthalten ist, und klicken Sie dann auf Tabellen.
- Suchen Sie in der Registerkarte "Tabellen" die Tabelle, und klicken Sie auf
Aktionen und dann auf Löschen. - Klicken Sie auf Löschen.

