Synthetische Datengenerierung
Generieren Sie synthetische Daten mithilfe von Zufallsgeneratoren, Algorithmen, statistischen Modellen und Large Language Models (LLMs), um echte Daten für die effektive Entwicklung und Prüfung von Lösungen zu simulieren.
Synthetische Daten können ein leistungsfähiges 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 Eigenschaften von realen Daten haben. Synthetische Daten werden in der Regel mit Zufallsgeneratoren, Algorithmen oder statistischen Modellen erstellt, um die Eigenschaften und Verteilungen von realen Daten zu simulieren. Dies kann jedoch komplex sein, um Werkzeuge mit Merkmalen unterschiedlicher Raffinesse herzustellen oder sich darauf 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 Generierung synthetischer Daten
Mit der synthetischen Datengenerierung können Sie Datenbankmetadatenklone auffüllen und Entwicklungs-, Test- und ML-Projekte unterstützen, 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 Select AI-Aktionen abzufragen. - Synthetische Datengenerierung überwachen und Fehler beheben
Bei der Generierung großer Datenmengen über viele Tabellen hinweg teilt Select AI Aufgaben zur synthetischen Datengenerierung in kleinere Chunks 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 Generierung synthetischer Daten
Die synthetische Datengenerierung ermöglicht das Auffüllen von Klonen für Datenbankmetadaten 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 es der synthetischen Datengenerierung, diese Klone zu füllen und vertrauliche Daten zu schützen und gleichzeitig die Entwicklung, das Testen und das Erstellen von Vorlagen zu ermöglichen. Dieser Ansatz unterstützt Performance- und Skalierbarkeitstests.
-
Neue Projekte starten: Beim Start 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 zum Training von KI- und ML-Modellen, wenn echte Daten nicht verfügbar oder eingeschränkt sind. LLMs können Daten mit bestimmten Mustern generieren, um das Modelltraining und -scoring 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 Select AI-Aktionen 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
Wenn große Datenmengen über viele Tabellen generiert werden, teilt Select AI Aufgaben zur Generierung synthetischer Daten in kleinere Chunks auf und führt Aufgaben parallel aus. Der Status jedes Chunks wird in der Tabelle SYNTHETIC_DATA$<operation_id>_STATUS
verfolgt.
Synthetische Datengenerierungsvorgänge 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 in DBMS_CLOUD verfolgen.
USER_LOAD_OPERATION
abrufen. Verwenden Sie dazu Folgendes:SELECT max(id) FROM user_load_operations;
Um die in einer anderen Session ausgeführten synthetischen Datenvorgänge anzuzeigen, verwenden Sie die Ansicht DBA_LOAD_OPERATIONS
.
Status der Generierung synthetischer Daten anzeigen
Die Statustabelle des Synthetischen Datengenerierungsvorgangs 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. |
|
|
Der qualifizierte Name der Tabelle, beispielsweise "ADB_USER"."EMPLOYEES" |
|
|
Gewünschte Anzahl der Datensätze für diese Datengenerierungsaufgabe |
|
|
Tatsächliche Anzahl generierter 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 war. |
|
|
Zeitstempel für das Ende der Datengenerierungsaufgabe. |
Um die Anzahl der für jede Tabelle generierten Datensätze zu prüfen, 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