Synthetische Datengenerierung
Generieren Sie synthetische Daten mit Zufallsgeneratoren, Algorithmen, statistischen Modellen und Large Language Models (LLMs), um reale Daten für die effektive Entwicklung und das Testen von Lösungen zu simulieren.
Synthetische Daten können ein leistungsstarkes Werkzeug bei der Entwicklung und dem Testen von Lösungen sein, insbesondere wenn tatsächliche Daten noch nicht vorhanden sind oder nicht verwendet werden dürfen. Synthetische oder künstlich erzeugte Daten können viele der Merkmale echter Daten aufweisen. Synthetische Daten werden in der Regel mit Zufallsgeneratoren, Algorithmen oder statistischen Modellen erstellt, um die Eigenschaften und Verteilungen echter Daten zu simulieren. Dies kann jedoch komplex sein, um Werkzeuge mit unterschiedlichen Eigenschaften herzustellen oder sich auf diese zu verlassen. Mit der Verfügbarkeit von Large Language Models (LLMs) können relevantere und schemaspezifische Daten generiert werden, die Merkmale berücksichtigen, die in natürlicher Sprache ausgedrückt werden.
Themen
- Vorteile der synthetischen Datengenerierung
Die synthetische Datengenerierung ermöglicht das Auffüllen von Datenbankmetadatenklonen und unterstützt Entwicklungs-, Test- und ML-Projekte, ohne sensible Daten aus ursprünglichen Tabellen zu verwenden. - Synthetische Daten generieren
Verwenden Sie die FunktionDBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
, um synthetische Daten zu generieren und die Daten mit AI-Aktionen zum Auswählen abzufragen. - Generierung synthetischer Daten überwachen und Fehler beheben
Bei der Generierung großer Datenmengen in vielen Tabellen teilt Select AI Aufgaben zur Generierung synthetischer Daten in kleinere Blöcke auf und führt Aufgaben parallel aus. Der Status jedes Chunks wird in der TabelleSYNTHETIC_DATA$<operation_id>_STATUS
verfolgt.
Übergeordnetes Thema: Select AI für Natural Language Interaction mit Ihrer Datenbank verwenden
Vorteile der synthetischen Datengenerierung
Die Generierung synthetischer Daten ermöglicht das Auffüllen von Datenbankmetadatenklonen und unterstützt Entwicklungs-, Test- und ML-Projekte, ohne sensible Daten aus ursprünglichen Tabellen zu verwenden.
-
Metadatenklone mit synthetischen Daten auffüllen: Ein Metadatenklon repliziert die Struktur einer Datenbank oder eines Schemas, ohne tatsächliche Daten einzuschließen. Select AI ermöglicht die Generierung synthetischer Daten zum Auffüllen dieser Klone, schützt sensible Daten und ermöglicht gleichzeitig die Entwicklung, das Testen und das Erstellen von Vorlagen. Dieser Ansatz unterstützt Performance- und Skalierbarkeitstests.
-
Neue Projekte starten: Beim Starten eines neuen Projekts sind möglicherweise keine Istdaten verfügbar. Synthetische Daten liefern realistische Proben, um Konzepte zu demonstrieren und Unterstützung für Projektvorschläge zu erhalten.
-
Validierung der Benutzererfahrung: Synthetische Daten helfen beim Testen von Benutzeroberflächen, indem sie verschiedene Datasets bereitstellen, um Designfehler, Performance- und Skalierbarkeitsprobleme aufzudecken.
-
Unterstützung von KI- und ML-Projekten: Synthetische Daten sind nützlich, um KI- und ML-Modelle zu trainieren, wenn echte Daten nicht verfügbar oder eingeschränkt sind. LLMs können Daten mit bestimmten Mustern generieren, um das Modelltraining und die Bewertung zu erleichtern.
Übergeordnetes Thema: Synthetische Datengenerierung
Synthetische Daten generieren
Verwenden Sie die Funktion DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
, um synthetische Daten zu generieren und die Daten mit AI-Aktionen zum Auswählen abzufragen.
Weitere Informationen finden Sie unter Funktion GENERATE_SYNTHETIC_DATA und Beispiel: Synthetische Daten generieren.
Übergeordnetes Thema: Synthetische Datengenerierung
Synthetische Datengenerierung überwachen und Fehler beheben
Bei der Generierung großer Datenmengen über viele Tabellen hinweg teilt Select AI Aufgaben zur Generierung synthetischer Daten in kleinere Blöcke auf und führt Aufgaben parallel aus. Der Status jedes Chunks wird in der Tabelle SYNTHETIC_DATA$<operation_id>_STATUS
verfolgt.
Vorgänge zur Generierung synthetischer Daten werden in den Tabellen DBA_LOAD_OPERATIONS
und USER_LOAD_OPERATIONS
protokolliert. Verwenden Sie diese Tabellen, um den Vorgang DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
zu überwachen. Weitere Informationen finden Sie unter Ladevorgänge von DBMS_CLOUD verfolgen.
USER_LOAD_OPERATION
abrufen. Verwenden Sie dazu Folgendes:SELECT max(id) FROM user_load_operations;
Um die synthetischen Datenvorgänge anzuzeigen, die in einer anderen Session ausgeführt werden, verwenden Sie die Ansicht DBA_LOAD_OPERATIONS
.
Status der Generierung synthetischer Daten anzeigen
Die Statustabelle des Vorgangs zur Generierung synthetischer Daten zeigt den Fortschritt jeder Tabelle und den entsprechenden Chunk an. Die Spalte STATUS_TABLE
in USER_LOAD_OPERATIONS
oder DBA_LOAD_OPERATIONS
zeigt den Namen der Statustabelle an. Der Tabellenname lautet SYNTHETIC_DATA$<operation_id>_STATUS
und enthält die folgenden Spalten:
Name | Datentyp | Beschreibung |
---|---|---|
|
|
Eindeutige ID des Datensatzes. |
|
|
Qualifizierter Name der Tabelle, z.B. "ADB_USER"."EMPLOYEES" |
|
|
Gewünschte Anzahl Datensätze für diese Datengenerierungsaufgabe |
|
|
Tatsächliche Anzahl der generierten Datensätze. |
|
|
Startwert für den Primärschlüssel während dieser Datengenerierungsaufgabe. |
|
|
Zeitstempel, der angibt, wann der Datensatz zuletzt geändert wurde. |
|
|
Status der Datengenerierungsaufgabe. Die gültigen Werte sind:
|
|
|
Fehlercode, wenn die Datengenerierungsaufgabe nicht erfolgreich ist. |
|
|
Fehlermeldung, wenn die Aufgabe nicht erfolgreich ist. |
|
|
Zeitstempel, der das Ende der Datengenerierungsaufgabe markiert. |
Um die Anzahl der Datensätze zu prüfen, die für jede Tabelle generiert wurden, geben Sie Folgendes aus:
SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;
Fragen Sie ROWS_LOADED
ab, um zu bestätigen, wie viele Zeilen für jeden Chunk geladen werden, und SUM(ROWS_LOADED)
für Zeilen für jede Tabelle.
BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'GENAI',
object_list => '[{"owner": "ADB_USER", "name": "DIRECTOR","record_count":150},
{"owner": "ADB_USER", "name": "MOVIE_ACTOR","record_count":300},
{"owner": "ADB_USER", "name": "CLASSES", "user_prompt":"all in fall semester","record_count":5},
{"owner": "ADB_USER", "name": "ACTOR","record_count":220},
{"owner": "ADB_USER", "name": "MOVIE","record_count":50}]'
);
END;
/
-- Check loaded rows for each chunk
SQL> SELECT name, rows_loaded FROM synthetic_data$141_status order by name;
NAME ROWS_LOADED
------------------------------------------
"ADB_USER"."ACTOR" 188
"ADB_USER"."ACTOR" 32
"ADB_USER"."CLASSES" 5
"ADB_USER"."DIRECTOR" 150
"ADB_USER"."MOVIE" 50
"ADB_USER"."MOVIE_ACTOR" 38
"ADB_USER"."MOVIE_ACTOR" 114
"ADB_USER"."MOVIE_ACTOR" 148
-- Check loaded rows for each table
SQL> SELECT name, SUM(rows_loaded) FROM synthetic_data$141_status group by name;
NAME SUM(ROWS_LOADED)
------------------------------------------
"ADB_USER"."DIRECTOR" 150
"ADB_USER"."MOVIE_ACTOR" 300
"ADB_USER"."CLASSES" 5
"ADB_USER"."ACTOR" 220
"ADB_USER"."MOVIE" 50
Übergeordnetes Thema: Synthetische Datengenerierung