Skip to main content
NetApp artificial intelligence solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

8. Konfigurationsreferenz

Beitragende nkarthik
Änderungen vorschlagen

Karthikeyan Nagalingam, NetApp

Die Konfigurationsreferenz beschreibt die Laufzeitparameter, die die Datenerfassung, Datenaufbereitung, XCP Datenmobilität, das Training, Checkpointing und die Archivierung steuern. Der ONTAP NAS Bucket wird in erster Linie als Staging-Schicht für aufbereitete Daten und XCP verwendet, um Supportfähigkeit und Portabilität zu gewährleisten. Im Echtzeit-Produktionsbetrieb können dieselben aufbereiteten Daten auch über direkte RDMA-fähige Zugriffspfade genutzt werden, wenn dies besser den Anforderungen an Workload und Latenz entspricht.


Das gesamte Laufzeitverhalten wird über dag_run.conf bereitgestellt, sodass derselbe DAG verschiedene Quellsysteme, Transformations-Engines, Speicherziele, Wiederherstellungsrichtlinien und Archivierungsbereiche bedienen kann. Es sollten nur die für den ausgewählten Workflow erforderlichen Parametergruppen konfiguriert, Anmeldeinformationen in Airflow Connections oder einem Secrets-Backend gespeichert und die Beispiele als Vorlagen für Nicht-Produktionsumgebungen statt als Anmeldeinformationswerte verwendet werden.

[[8-1-ingestion-parameters]]
== 8.1 Aufnahmeparameter

Diese Einstellungen dienen zur Auswahl und Konfiguration des vorgelagerten Datenerfassungsmechanismus. s3_direct Dabei werden die in der Datenaufbereitungsgruppe konfigurierten StorageGRID Rohdatenobjekte verwendet; Airbyte und NiFi Einstellungen sind nur erforderlich, wenn die jeweiligen Erfassungstools ausgewählt sind.

Parameter Standard Erforderlich Beschreibung Beispiel

ingestion_tool

s3_direct

Nein

Auswahl des Aufnahmemodus

"s3_direct"

airbyte_api_url

Keine

Nur Airbyte

Airbyte API Endpunkt

"http://airbyte:8000"

airbyte_connection_id

Keine

Nur Airbyte

Airbyte Verbindungs-ID

"connection-123"

airbyte_api_token

Keine

Optional

Bearer Token

"<TOKEN>"

airbyte_timeout_secs

30

Nein

Airbyte Zeitüberschreitung

60

nifi_api_url

Keine

NiFi nur

NiFi API-Endpunkt

"http://nifi:8080"

nifi_process_group_id

Keine

NiFi nur

NiFi Prozessgruppe

"abc123"

nifi_timeout_secs

30

Nein

NiFi Zeitüberschreitung

60

[[8-2-data-preparation-parameters]]
== 8.2 Parameter zur Datenaufbereitung

Diese Einstellungen steuern den Zugriff auf Rohdaten, die Ausgabe aufbereiteter Daten, die Eingabeerkennung und das Transformationsverhalten. Die s3_raw_* Parameter beziehen sich auf StorageGRID, während die code-compatible s3_formatted_* Parameter den ONTAP NAS Bucket identifizieren, in den aufbereitete, mit einem Laufzeitstempel versehene Daten und Manifeste geschrieben werden.

Unformatierter StorageGRID / Prepared-Data ONTAP NAS-Bucket:

Separate Endpunkte und Anmeldeinformationen werden konfiguriert, wenn StorageGRID und der ONTAP NAS Bucket unterschiedliche S3-kompatible Dienste oder Zugriffsrichtlinien verwenden. Die generischen Fallback-Schlüssel gelten nur, wenn keine spezifischere Einstellung für Rohdaten oder aufbereitete Daten vorhanden ist.

Parameter Standard Beschreibung Beispiel

s3_raw_bucket

ai-raw-data

StorageGRID Rohdaten-Eingabe-Bucket

"bucket1"

s3_raw_prefix

example_ai_pipeline/raw

StorageGRID Rohdatenpräfix

"example_ai_pipeline/raw"

s3_raw_endpoint_url

Fallback-Kette

StorageGRID S3 Endpunkt

"http://10.63.150.62:10444"

s3_raw_access_key_id

Fallback-Kette

Unformatierter Zugriffsschlüssel

"<KEY>"

s3_raw_secret_access_key

Fallback-Kette

Rohschlüssel

"<SECRET>"

s3_raw_region

aws_region

Rohregion

"us-east-1"

s3_formatted_bucket

ai-formatted-data

ONTAP NAS Ausgabebucket für vorbereitete Daten

"prepnasbucket"

s3_formatted_prefix

example_ai_pipeline/formatted

ONTAP NAS Prepared-Data-Präfix

"example_ai_pipeline/formatted"

s3_formatted_endpoint_url

Fallback-Kette

ONTAP NAS Bucket S3 Endpunkt

"http://10.63.150.159"

s3_formatted_access_key_id

Fallback-Kette

ONTAP NAS Bucket-Zugriffsschlüssel

"<KEY>"

s3_formatted_secret_access_key

Fallback-Kette

ONTAP NAS Bucket Geheimschlüssel

"<SECRET>"

Allgemeiner Ausweichweg: s3_endpoint_url, s3_access_key_id, s3_secret_access_key, s3_session_token, s3_verify, aws_region, aws_access_key_id, aws_secret_access_key, aws_session_token.

Eingabeauswahl:

Für die Verarbeitung bekannter CSV-Eingaben werden explizite Objektschlüsseleinstellungen verwendet, andernfalls ermittelt die Aufgabe geeignete tabellarische Objekte unter dem konfigurierten StorageGRID Rohpräfix.

Parameter Standard Beschreibung Beispiel

s3_tabular_object_keys

Automatische Erkennung

Explizite Liste der CSV-Schlüssel

["raw/demo/a.csv"]

s3_tabular_object_key

Keine

Einzelner expliziter CSV-Schlüssel

"raw/demo/a.csv"

Transformation:

Wählen Sie den Python-Pfad für eine ressourcenschonende lokale Vorbereitung oder Spark für eine verteilte Vorbereitung. Sampling und der Seed gelten reproduzierbar für die generierten Trainings-, Validierungs- und Inferenzaufteilungen.

Parameter Standard Beschreibung Beispiel

transformation_engine

python

python oder spark

"spark"

spark_required

false

Ausfall statt Fallback

true

table_format

none

none/delta/iceberg

"delta"

table_format_required

false

Fehler, wenn das Format nicht verfügbar ist

true

sample_count

alle Zeilen

Zeilenlimit (≤0 = alle)

14400

seed

7

Reproduzierbarer Shuffle Seed

11

Spark:

Diese Einstellungen gelten nur für transformation_engine=spark. Sie steuern die Platzierung von Spark-Prozessen, die Ressourcenzuweisung, Zeitlimits und optionale Laufzeitabhängigkeiten von Delta Lake oder Iceberg.

Parameter Standard Beschreibung Beispiel

spark_submit_bin

spark-submit

Spark Binärdatei

"/opt/spark/bin/spark-submit"

spark_master

local[*]

Spark Master

"local[*]"

spark_driver_memory

4g

Treiberspeicher

"8g"

spark_executor_memory

4g

Executor Speicher

"8g"

spark_timeout_secs

900/7200

Zeitüberschreitung (0 = deaktiviert)

0

spark_delta_packages

Delta 3.2.0

Delta Runtime-Paket

"io.delta:delta-spark_2.12:3.2.0"

spark_iceberg_packages

Iceberg 1.5.2

Iceberg Laufzeitpaket

"org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2"

spark_iceberg_catalog

local

Name des Iceberg Katalogs

"local"

[[8-3-xcp-and-training-destination-parameters]]
== 8.3 XCP und Trainingszielparameter

Diese Gruppe dient, `enable_xcp=true`wenn die ONTAP NAS NFS-Quelle validiert, der XCP Host aufgerufen und die aktive Trainingsebene ausgewählt werden sollen. `xcp_copy_destination`Sie ist der steuernde Schalter: Er wählt entweder die ONTAP S3-spezifischen oder die LustreFS-spezifischen Einstellungen aus, und nachgelagerte Modellstufen verwenden dieselbe ausgewählte Ebene.

Parameter Standard Erforderlich Beschreibung Beispiel

enable_xcp

false

Ja für XCP

Aktiviert den XCP-Zweig

true

xcp_copy_destination

s3

Nein

s3 oder lustrefs

"lustrefs"

xcp_nfs_source_ip

10.63.150.159

XCP Vorabprüfung

NFS-Server-IP

"10.63.150.159"

xcp_nfs_source_path

/prepnasbucket/example_ai_pipeline

XCP Vorabprüfung

NFS Exportpfad

"/prepnasbucket/example_ai_pipeline"

ssh_user

root

Nein

XCP host SSH Benutzer

"root"

ssh_host

10.63.150.178

Nein

XCP Hostadresse

"10.63.150.178"

S3 Ziel (erforderlich, wenn xcp_copy_destination=s3):

Diese Einstellungen sind nur für den ONTAP S3 Trainingspfad erforderlich. Die Profil- oder direkten Anmeldeinformationen ermöglichen XCP und der Modellartefakt-Synchronisierungslogik den Zugriff auf den ausgewählten ONTAP S3 Bucket und das Präfix.

Parameter Standard Beschreibung Beispiel

xcp_s3_endpoint

Standard

XCP S3-Endpunkt

"http://10.63.150.161"

xcp_s3_bucket

Keine

XCP Ziel Bucket

"trainingbucket"

xcp_s3_dest_prefix

example_ai_pipeline

Zielpräfix

"example_ai_pipeline"

xcp_s3_training_prefix

xcp_s3_dest_prefix

Präfix für die Trainingserkennung

"example_ai_pipeline"

xcp_s3_profile

ontaps3

Benanntes Anmeldeinformationsprofil

"ontaps3"

xcp_s3_profiles

Keine

Profilübersicht

{"ontaps3": {…​}}

xcp_s3_access_key_id

Keine

Direkter Schlüsselfallback

"<KEY>"

xcp_s3_secret_access_key

Keine

Direkter geheimer Fallback

"<SECRET>"

xcp_s3_region

aws_region

XCP S3 Region

"us-east-1"

LustreFS Ziel (erforderlich, wenn xcp_copy_destination=lustrefs):

Diese Einstellungen gelten nur für den LustreFS Trainingspfad. Quelle und Ziel müssen auf dem XCP Host eingebunden und erreichbar sein; das Ziel muss außerdem für den Airflow Worker erreichbar sein, der die Modellphasen ausführt.

Parameter Standard Beschreibung Beispiel

xcp_lustrefs_source_path

/prepnasbucket/example_ai_pipeline

XCP Kopierquelle

"/prepnasbucket/example_ai_pipeline"

xcp_lustrefs_dest_path

/mnt/lustre/client

LustreFS Mount-Ziel

"/mnt/lustre/client"

xcp_lustrefs_training_subpath

xcp_s3_dest_prefix

Unterverzeichnis „Training“ unter Mount

"example_ai_pipeline"

xcp_lustrefs_newid

data_prep Ausführungsstempel

XCP Jobkennung

"20260901_120000"

Verhalten der Textquelle:

Diese Optionen steuern, wie die drei Textdatensätze nach der XCP Mobilität gefunden werden. Explizite Schlüssel überschreiben die Erkennung; der lokale Fallback kann deaktiviert werden, damit die Texteingaben vom ausgewählten XCP-Ziel stammen.

Parameter Standard Beschreibung Beispiel

xcp_text_allow_local_fallback

true

Lokalen Text-Fallback zulassen

false

xcp_text_base_key

Automatisch

Explizite Basistextposition

"…​/text_base.json"

xcp_text_finetune_key

Automatisch

Explizite Position des Feinabstimmungstextes

"…​/text_finetune.json"

xcp_text_infer_key

Automatisch

Explizite Schlussfolgerung-Textposition

"…​/text_infer.json"

[[8-4-model-training-parameters]]
== 8.4 Parameter für das Modelltraining

Diese Einstellungen wählen die lokale oder über XCP bereitgestellte Quelle aus, begrenzen das Trainingsvolumen und bewahren eine reproduzierbare Datenreihenfolge. Wenn XCP aktiviert ist, liest das Training die ausgewählte ONTAP S3 oder LustreFS Ebene und veröffentlicht die Basisartefakte wieder an demselben Zielort.

Parameter Standard Beschreibung Beispiel

enable_xcp

false

Auswahl von XCP oder lokaler Quelle

true

xcp_copy_destination

s3

Die Quell-Tier wird ausgewählt

"lustrefs"

sample_count

alle Zeilen

Limit für Trainingsstichproben

14400

seed

7

Reproduzierbares Mischen

11

Produziert: regression_model.bin, text_vectorizer.bin, text_classifier.bin, train_metrics.json.

[[8-5-fine-tuning-parameters]]
== 8.5 Feinabstimmungsparameter

Die Feinabstimmung materialisiert die Basistextartefakte aus dem ausgewählten XCP-Ziel, wendet inkrementelles Lernen auf den Feinabstimmungsdatensatz an und veröffentlicht den optimierten Klassifikator und seine Metriken erneut. Die XCP-Einstellungen sollten mit dem Modelltraining konsistent bleiben, um die Herkunft der Artefakte zu gewährleisten.

Parameter Standard Beschreibung Beispiel

enable_xcp

false

Ermöglicht das Materialisieren/Veröffentlichen von Artefakten

true

xcp_copy_destination

s3

Auswahl der Artefaktquelle/des Artefaktziels

"lustrefs"

Verbraucht: text_vectorizer.bin, text_classifier.bin, text_finetune.json. Produziert: text_classifier_tuned.bin, fine_tune_metrics.json.

[[8-6-inference-parameters]]
== 8.6 Inferenzparameter

Diese Flags steuern den Umfang der Bewertung, nachdem das optimierte Modell aus der ausgewählten Trainingsstufe generiert wurde. Eine der Optionen ist zu aktivieren, wenn Validierungs- oder Geschäftsanforderungen Ausgaben erfordern, die über die standardmäßige Inferenzaufteilung und die Inferenztexteingabe hinausgehen.

Parameter Standard Beschreibung Beispiel

infer_all_splits

false

Bewerten von Train/Val/Infer-Aufteilungen

true

infer_all_text

false

Base-/Feinabstimmungs-/Inferenztext bewerten

true

Verbraucht: regression_model.bin, text_vectorizer.bin, text_classifier_tuned.bin. Erzeugt: tabular_predictions.csv, text_predictions.json.

[[8-7-checkpoint-parameters]]
== 8.7 Checkpoint-Parameter

Checkpointing ist auf model_training beschränkt. Diese Einstellungen legen fest, ob ein Datensatz zum Trainingsabschluss erstellt wird, wo dieser gespeichert wird, wie mit Upload-Fehlern umgegangen wird und ob ein späterer Durchlauf ein gültiges abgeschlossenes Trainingsergebnis überprüft oder wiederverwendet.

Parameter Standard Beschreibung Beispiel

checkpoint_enabled

true

Ermöglicht die Erstellung von Prüfpunktdateien

true

checkpoint_store

local

local oder formatted_s3

"formatted_s3"

checkpoint_upload_fail_mode

warn

warn oder fail

"fail"

training_checkpoint_reuse_mode

off

off/verify_only/resume_if_exists

"resume_if_exists"

checkpoint_reuse_mode

off

Abwärtskompatibler Alias

"verify_only"

[[8-8-manual-archive-parameters]]
== 8.8 Manuelle Archivparameter

Diese Gruppe dient zum Aktivieren der StorageGRID Archivierung, zum Angeben des Ziel-Bucket und der Zugangsdaten sowie zum Auswählen des Archivierungspunkts. Der ausgewählte manual_archive_stage steuert sowohl den Zeitpunkt der Archivierung als auch, ob das Archiv nur Trainingsartefakte der Baseline oder den vollständigen Ergebnissatz der Inferenz enthält.

Parameter Standard Erforderlich Beschreibung Beispiel

manual_archive_enabled

false

Nein

Ermöglicht die Archivierung

true

manual_archive_stage

inferencing

Nein

Archivpunkt und Artefaktsatz: model_training für Kerntrainingsartefakte oder inferencing für den vollständigen Ergebnissatz

"model_training"

manual_archive_bucket

archivalbucket

Ja, wenn aktiviert

Archive Bucket

"archivalbucket"

manual_archive_prefix

ai-models

Nein

Archivpräfix

"ai-models"

manual_archive_endpoint

Standard

Nur benutzerdefiniert

Archive S3 Endpunkt

"http://10.63.150.62:10444"

manual_archive_profile

sgdlocal

Empfohlen

Anmeldeinformationsprofil

"sgdlocal"

manual_archive_profiles

Keine

Optional

Profilübersicht

{"sgdlocal": {…​}}

manual_archive_include_xcp_inputs

false

Nein

XCP-Eingaben in Archiv einbinden

true

manual_archive_cleanup_raw

false

Nein

Entfernen des lokalen Rohdatenordners nach dem Upload

true

Aliase: fabricpool_archive_* für alle manual_archive_* Parameter.

[[8-8-1-manual-archive-stage-decision]]
=== 8.8.1 Entscheidung über die manuelle Archivstufe

Die route_manual_archive_stage Branch Task liest manual_archive_stage einmal pro DAG Lauf. Der ausgewählte Wert bestimmt sowohl, wann die Archivierung ausgeführt wird, als auch, welche Artefakte in den StorageGRID Archivierungs Bucket hochgeladen werden. Archivobjekte werden unter s3://<manual_archive_bucket>/<manual_archive_prefix>/<stage>/<run_stamp>/ gespeichert.

`manual_archive_stage`Wert Archivierungszeitpunkte Artefakte archiviert Empfohlene Verwendung

model_training

Unmittelbar danach model_training; es wird nicht auf Feinabstimmung oder Inferenz gewartet

regression_model.bin, text_vectorizer.bin, text_classifier.bin, train_metrics.json

Ein reproduzierbares Basismodell beibehalten, das Archivvolumen minimieren oder einen Kontrollpunkt vor späteren Phasen aufbewahren

inferencing (Standard)

Nach fine_tuning und inferencing abgeschlossen

Alle model_training Artefakte plus text_classifier_tuned.bin, fine_tune_metrics.json, tabular_predictions.csv und text_predictions.json

Vollständige Geschäftsergebnisse und Prognosenachweise für einen Modelllauf beibehalten

Für beide Auswahlmöglichkeiten wird manual_archive_include_xcp_inputs=true festgelegt, dass lokal materialisierte XCP-Trainingseingaben hinzugefügt werden, sofern vorhanden. manual_archive_enabled=false wird so festgelegt, dass die Archivierungsaufgabe übersprungen wird, ohne den Trainings- und Inferenz-Workflow zu ändern.

[[8-9-complete-sample-configuration]]
== 8.9 Vollständige Beispielkonfiguration

Dieser Katalog enthält Startkonfigurationen für die wichtigsten Bereitstellungs- und Testpfade. Allen Beispielen liegt zugrunde, dass sich Rohdaten in StorageGRID befinden und aufbereitete Daten in den ONTAP NAS Bucket geschrieben werden. Bucket-Namen, Endpunktadressen, Dateisystempfade und Profilnamen sind durch Werte aus der Zielumgebung zu ersetzen. Produktionszugriffsschlüssel oder Geheimnisse dürfen nicht in CONF_JSON abgelegt werden; die Konfiguration erfolgt stattdessen über Airflow Connections, Variables oder ein Secrets Backend.

[[8-9-1-xcp-to-lustrefs-with-spark-and-delta-lake]]
=== 8.9.1 XCP zu LustreFS mit Spark und Delta Lake

Dieses Beispiel mit vollem Durchsatz wird für die verteilte Vorbereitung und die Hochleistungsmodell-E/A von LustreFS verwendet. Es verarbeitet alle geeigneten tabellarischen Dateien unter s3_raw_prefix, schreibt Delta-Tabellen während der Vorbereitung, speichert den Trainings-Checkpoint im ONTAP NAS prepared-data bucket und archiviert die vollständige Inferenz-Ergebnismenge.

{
  "ingestion_tool": "s3_direct",
  "s3_raw_bucket": "bucket1",
  "s3_raw_prefix": "example_ai_pipeline/raw",
  "s3_formatted_bucket": "prepnasbucket",
  "s3_formatted_prefix": "example_ai_pipeline/formatted",

  "enable_xcp": true,
  "xcp_copy_destination": "lustrefs",
  "xcp_nfs_source_ip": "10.63.150.159",
  "xcp_nfs_source_path": "/prepnasbucket/example_ai_pipeline",
  "xcp_lustrefs_source_path": "/prepnasbucket/example_ai_pipeline",
  "xcp_lustrefs_dest_path": "/mnt/lustre/client",
  "xcp_lustrefs_training_subpath": "example_ai_pipeline",
  "xcp_text_allow_local_fallback": false,

  "transformation_engine": "spark",
  "spark_required": true,
  "table_format": "delta",
  "table_format_required": true,
  "spark_driver_memory": "8g",
  "spark_executor_memory": "8g",
  "spark_timeout_secs": 0,
  "sample_count": 14400,
  "seed": 11,

  "infer_all_splits": true,
  "infer_all_text": true,

  "checkpoint_enabled": true,
  "checkpoint_store": "formatted_s3",
  "training_checkpoint_reuse_mode": "off",

  "manual_archive_enabled": true,
  "manual_archive_stage": "inferencing",
  "manual_archive_bucket": "archivalbucket",
  "manual_archive_prefix": "ai-models",
  "manual_archive_profile": "sgdlocal",
  "manual_archive_cleanup_raw": true
}

[[8-9-2-no-xcp-with-python-preparation]]
=== 8.9.2 Keine XCP Vorbereitung mit Python

Diese Basiskonfiguration wird für einen ressourcenschonenden Funktionslauf verwendet. Die Vorbereitung nutzt die lokale Python Engine, und die nachfolgenden Phasen verwenden die lokalen Pfade der Pipeline für vorbereitete Daten und Artefakte; XCP, Spark, Tabellenformate, Checkpoint-Wiederverwendung und Archivierung sind deaktiviert.

{
    "ingestion_tool": "s3_direct",
    "s3_raw_bucket": "bucket1",
    "s3_raw_prefix": "example_ai_pipeline/raw",
    "s3_formatted_bucket": "prepnasbucket",
    "s3_formatted_prefix": "example_ai_pipeline/formatted",
    "enable_xcp": false,
    "transformation_engine": "python",
    "table_format": "none",
    "sample_count": 200,
    "seed": 11,
    "checkpoint_enabled": false,
    "manual_archive_enabled": false
}

[[8-9-3-python-preparation-with-two-explicit-input-files]]
=== 8.9.3 Python Vorbereitung mit zwei expliziten Eingabedateien

Dieser gezielte Test dient zur Validierung der Pipeline anhand von zwei bekannten StorageGRID CSV-Objekten. s3_tabular_object_keys Die automatische Erkennung tabellarischer Dateien wird deaktiviert; die Texteingaben verwenden weiterhin ihre erwarteten Speicherorte unter dem Rohdaten-Präfix.

{
    "ingestion_tool": "s3_direct",
    "s3_raw_bucket": "bucket1",
    "s3_raw_prefix": "example_ai_pipeline/raw",
    "s3_tabular_object_keys": [
        "example_ai_pipeline/raw/tabular_part_01.csv",
        "example_ai_pipeline/raw/tabular_part_02.csv"
    ],
    "s3_formatted_bucket": "prepnasbucket",
    "s3_formatted_prefix": "example_ai_pipeline/formatted",
    "enable_xcp": false,
    "transformation_engine": "python",
    "table_format": "none",
    "sample_count": 200,
    "seed": 11,
    "manual_archive_enabled": false
}

[[8-9-4-python-preparation-with-automatic-all-file-discovery]]
=== 8.9.4 Python Vorbereitung mit automatischer Erkennung aller Dateien

Wenn s3_tabular_object_keys und s3_tabular_object_key weggelassen werden, werden alle geeigneten tabellarischen Objekte unter dem StorageGRID Rohdaten-Präfix verarbeitet. Dieses Beispiel eignet sich für einen Funktions- oder Skalierungstest für alle Dateien mithilfe der Python Vorbereitung Engine.

{
    "s3_raw_bucket": "bucket1",
    "s3_raw_prefix": "example_ai_pipeline/raw",
    "s3_formatted_bucket": "prepnasbucket",
    "s3_formatted_prefix": "example_ai_pipeline/formatted",
    "enable_xcp": false,
    "transformation_engine": "python",
    "table_format": "none",
    "sample_count": 0,
    "seed": 11,
    "manual_archive_enabled": false
}

sample_count: 0 bedeutet, dass bei der Datenaufbereitung alle verfügbaren Zeilen verwendet werden. Für einen begrenzten Testlauf ist ein positiver Wert festzulegen.

[[8-9-5-xcp-to-ontap-s3-with-python-preparation]]
=== 8.9.5 XCP zu ONTAP S3 mit Python Vorbereitung

Diese Konfiguration wird verwendet, wenn vorbereitete Daten vom ONTAP NAS NFS-Export in einen ONTAP S3 Training Bucket kopiert werden müssen. Modelltraining, Feinabstimmung und Inferenz erzeugen und veröffentlichen Artefakte über dasselbe ONTAP S3-Ziel.

{
    "s3_raw_bucket": "bucket1",
    "s3_raw_prefix": "example_ai_pipeline/raw",
    "s3_formatted_bucket": "prepnasbucket",
    "s3_formatted_prefix": "example_ai_pipeline/formatted",
    "enable_xcp": true,
    "xcp_copy_destination": "s3",
    "xcp_nfs_source_ip": "10.63.150.159",
    "xcp_nfs_source_path": "/prepnasbucket/example_ai_pipeline",
    "xcp_s3_endpoint": "https://ontap-s3.example.com",
    "xcp_s3_bucket": "trainingbucket",
    "xcp_s3_dest_prefix": "example_ai_pipeline",
    "xcp_s3_training_prefix": "example_ai_pipeline",
    "xcp_s3_profile": "ontaps3",
    "transformation_engine": "python",
    "table_format": "none",
    "sample_count": 14400,
    "seed": 11,
    "checkpoint_enabled": true,
    "checkpoint_store": "formatted_s3",
    "manual_archive_enabled": true,
    "manual_archive_stage": "model_training",
    "manual_archive_bucket": "archivalbucket",
    "manual_archive_profile": "storagegrid-archive"
}

[[8-9-6-xcp-to-ontap-s3-with-spark-and-iceberg]]
=== 8.9.6 XCP zu ONTAP S3 mit Spark und Iceberg

Diese Konfiguration wird für die verteilte Vorbereitung mit Iceberg-Tabellenausgabe und ONTAP S3 als aktivem Trainingsziel verwendet. Dabei werden spark_required und table_format_required auf true gesetzt, wenn ein Lauf fehlschlagen muss, anstatt auf eine Alternative zurückzugreifen, falls Spark oder Iceberg nicht verfügbar sind.

{
    "s3_raw_bucket": "bucket1",
    "s3_raw_prefix": "example_ai_pipeline/raw",
    "s3_formatted_bucket": "prepnasbucket",
    "s3_formatted_prefix": "example_ai_pipeline/formatted",
    "enable_xcp": true,
    "xcp_copy_destination": "s3",
    "xcp_nfs_source_ip": "10.63.150.159",
    "xcp_nfs_source_path": "/prepnasbucket/example_ai_pipeline",
    "xcp_s3_bucket": "trainingbucket",
    "xcp_s3_dest_prefix": "example_ai_pipeline",
    "xcp_s3_profile": "ontaps3",
    "transformation_engine": "spark",
    "spark_required": true,
    "table_format": "iceberg",
    "table_format_required": true,
    "spark_driver_memory": "8g",
    "spark_executor_memory": "8g",
    "spark_timeout_secs": 0,
    "sample_count": 0,
    "seed": 11,
    "manual_archive_enabled": true,
    "manual_archive_stage": "inferencing",
    "manual_archive_bucket": "archivalbucket",
    "manual_archive_profile": "storagegrid-archive"
}

[[8-9-7-scenario-selection-summary]]
=== 8.9.7 Zusammenfassung der Szenarioauswahl

Szenario XCP Ziel Vorbereitungsmodul Tabellenformat Eingabebereich Archivierungsphase

8.9.1

LustreFS

Funke

Delta

Alle gefundenen Dateien

inferencing

8.9.2

Keine

Python

Keine

Alle gefundenen Dateien

Deaktiviert

8.9.3

Keine

Python

Keine

Zwei explizite Dateien

Deaktiviert

8.9.4

Keine

Python

Keine

Alle gefundenen Dateien

Deaktiviert

8.9.5

ONTAP S3

Python

Keine

Alle gefundenen Dateien

model_training

8.9.6

ONTAP S3

Funke

Iceberg

Alle gefundenen Dateien

inferencing

[[8-9-8-execution-walkthroughs]]
=== 8.9.8 Walkthroughs zur Ausführung

Die Beispiele werden aus dem Airflow workspace ausgeführt. Das trigger script generiert eine eindeutige manual__<UTC timestamp> run ID, wartet auf den Abschluss und gibt bei einem fehlgeschlagenen oder mit Zeitüberschreitung beendeten Lauf einen Exit-Code ungleich null zurück. Die folgenden vollständigen Konfigurationen verwenden dasselbe CONF_JSON="$(python3 - <<'PY' …​)" Muster wie die Betriebsbeispiele. Die referenzierten Airflow-managed connections, XCP profiles und archive profiles werden vor der Ausführung in Ihrem secrets backend konfiguriert, und CONF_JSON dies bleibt auf Bucket-, Endpunkt-, Pfad- und Profilkennungen ohne Secrets beschränkt.

Der gültige Tabellenformatname lautet iceberg. icerberg ist kein unterstützter Wert.

Alle Dateien, Spark, Iceberg, XCP zu ONTAP S3, Checkpoint zu prepared-data S3, Archiv nach der Inferenz:

CONF_JSON="$(python3 - <<'PY'
import json

print(json.dumps({
    "ingestion_tool": "s3_direct",
    "enable_xcp": True,
    "xcp_copy_destination": "s3",
    "xcp_text_allow_local_fallback": True,

    "s3_raw_bucket": "bucket1",
    "s3_raw_prefix": "example_ai_pipeline/raw",
    "s3_raw_endpoint_url": "https://storagegrid.example.com",
    "s3_raw_region": "us-east-1",

    "s3_formatted_bucket": "prepnasbucket",
    "s3_formatted_prefix": "example_ai_pipeline/formatted",
    "s3_formatted_endpoint_url": "https://ontap-nas.example.com",
    "s3_formatted_region": "us-east-1",

    "xcp_nfs_source_ip": "10.63.150.159",
    "xcp_nfs_source_path": "/prepnasbucket/example_ai_pipeline",
    "xcp_s3_endpoint": "https://ontap-s3.example.com",
    "xcp_s3_bucket": "trainingbucket",
    "xcp_s3_dest_prefix": "example_ai_pipeline",
    "xcp_s3_training_prefix": "example_ai_pipeline",
    "xcp_s3_profile": "ontaps3",

    "transformation_engine": "spark",
    "spark_required": True,
    "table_format": "iceberg",
    "table_format_required": True,
    "sample_count": 0,
    "seed": 11,
    "spark_driver_memory": "8g",
    "spark_executor_memory": "8g",
    "spark_timeout_secs": 0,
    "infer_all_splits": True,
    "infer_all_text": True,

    "checkpoint_enabled": True,
    "checkpoint_store": "formatted_s3",
    "manual_archive_enabled": True,
    "manual_archive_stage": "inferencing",
    "manual_archive_bucket": "archivalbucket",
    "manual_archive_prefix": "ai-models",
    "manual_archive_profile": "sgdlocal",
    "manual_archive_endpoint": "https://storagegrid.example.com",
    "manual_archive_cleanup_raw": True,
    "manual_archive_include_xcp_inputs": True,
}, separators=(",", ":")))
PY
)"
CONF_JSON="$CONF_JSON" AIRFLOW_BIN=./.venv/bin/airflow INGESTION_TOOL=s3_direct \
  ./trigger_and_wait_ai_pipeline_sklearn.sh

Alle Dateien, Spark, Iceberg, XCP nach LustreFS, Checkpoint in prepared-data S3, Archiv nach Inferenz:

CONF_JSON="$(python3 - <<'PY'
import json

print(json.dumps({
    "ingestion_tool": "s3_direct",
    "enable_xcp": True,
    "xcp_copy_destination": "lustrefs",
    "ssh_user": "root",
    "ssh_host": "10.63.150.178",
    "xcp_text_allow_local_fallback": True,

    "s3_raw_bucket": "bucket1",
    "s3_raw_prefix": "example_ai_pipeline/raw",
    "s3_raw_endpoint_url": "https://storagegrid.example.com",
    "s3_raw_region": "us-east-1",

    "s3_formatted_bucket": "prepnasbucket",
    "s3_formatted_prefix": "example_ai_pipeline/formatted",
    "s3_formatted_endpoint_url": "https://ontap-nas.example.com",
    "s3_formatted_region": "us-east-1",

    "xcp_nfs_source_ip": "10.63.150.159",
    "xcp_nfs_source_path": "/prepnasbucket/example_ai_pipeline",
    "xcp_lustrefs_source_path": "/prepnasbucket/example_ai_pipeline",
    "xcp_lustrefs_dest_path": "/mnt/lustre/client",
    "xcp_lustrefs_training_subpath": "example_ai_pipeline",

    "transformation_engine": "spark",
    "spark_required": True,
    "table_format": "iceberg",
    "table_format_required": True,
    "sample_count": 0,
    "seed": 11,
    "spark_driver_memory": "8g",
    "spark_executor_memory": "8g",
    "spark_timeout_secs": 0,
    "infer_all_splits": True,
    "infer_all_text": True,

    "checkpoint_enabled": True,
    "checkpoint_store": "formatted_s3",
    "manual_archive_enabled": True,
    "manual_archive_stage": "inferencing",
    "manual_archive_bucket": "archivalbucket",
    "manual_archive_prefix": "ai-models",
    "manual_archive_profile": "sgdlocal",
    "manual_archive_endpoint": "https://storagegrid.example.com",
    "manual_archive_cleanup_raw": True,
    "manual_archive_include_xcp_inputs": True,
}, separators=(",", ":")))
PY
)"
AIRFLOW_BIN=./.venv/bin/airflow INGESTION_TOOL=s3_direct \
  ./trigger_and_wait_ai_pipeline_sklearn.sh

Für den ONTAP S3 Modus wird nur der nicht geheime xcp_s3_profile`Name in `CONF_JSON übergeben, und die entsprechenden Anmeldeinformationen werden vor dem Lauf auf dem XCP Host oder über den von Airflow verwalteten Secret Storage definiert. Für den LustreFS Modus wird die xcp_s3_profiles Zuordnung absichtlich ausgelassen, da die Trainingsroute ONTAP S3 Anmeldeinformationen nicht auflöst. In beiden Beispielen werden die Anmeldeinformationen für StorageGRID Rohdaten, ONTAP NAS vorbereitete Daten und das Archiv über den von Airflow verwalteten Secret Storage und nicht als Inline JSON definiert. Das Weglassen von s3_tabular_object_keys und das Festlegen von sample_count auf 0 fordert die automatische Erkennung aller geeigneten Tabellendateien sowie die Verwendung aller verfügbaren Zeilen an.

Python, kein XCP, Test mit zwei Dateien:

CONF_JSON='{"s3_raw_bucket":"bucket1","s3_raw_prefix":"example_ai_pipeline/raw","s3_tabular_object_keys":["example_ai_pipeline/raw/tabular_part_01.csv","example_ai_pipeline/raw/tabular_part_02.csv"],"s3_formatted_bucket":"prepnasbucket","s3_formatted_prefix":"example_ai_pipeline/formatted","enable_xcp":false,"transformation_engine":"python","table_format":"none","sample_count":200,"manual_archive_enabled":false}' \
./trigger_and_wait_ai_pipeline_sklearn.sh

Spark, Delta Lake, XCP zu LustreFS:

CONF_JSON='{"enable_xcp":true,"xcp_copy_destination":"lustrefs","xcp_nfs_source_ip":"10.63.150.159","xcp_nfs_source_path":"/prepnasbucket/example_ai_pipeline","xcp_lustrefs_source_path":"/prepnasbucket/example_ai_pipeline","xcp_lustrefs_dest_path":"/mnt/lustre/client","xcp_lustrefs_training_subpath":"example_ai_pipeline","transformation_engine":"spark","spark_required":true,"table_format":"delta","table_format_required":true,"sample_count":14400,"manual_archive_enabled":true,"manual_archive_stage":"inferencing"}' \
./trigger_and_wait_ai_pipeline_sklearn.sh

Spark, Iceberg, XCP zu ONTAP S3:

CONF_JSON='{"enable_xcp":true,"xcp_copy_destination":"s3","xcp_nfs_source_ip":"10.63.150.159","xcp_nfs_source_path":"/prepnasbucket/example_ai_pipeline","xcp_s3_bucket":"trainingbucket","xcp_s3_dest_prefix":"example_ai_pipeline","xcp_s3_profile":"ontaps3","transformation_engine":"spark","spark_required":true,"table_format":"iceberg","table_format_required":true,"sample_count":0,"manual_archive_enabled":true,"manual_archive_stage":"inferencing"}' \
./trigger_and_wait_ai_pipeline_sklearn.sh

Vor einem XCP Lauf ist zu prüfen, ob der konfigurierte ONTAP NAS NFS Pfad und die Erreichbarkeit des Ziels vom XCP Host aus gegeben sind. Nach einem erfolgreichen Lauf sind die Aufgabenprotokolle für [data_prep] effective_config, [xcp_copy] effective_config, [model_training] effective_config und [manual_archive] zu prüfen, um die ausgewählte Engine, den Eingabebereich, das Ziel und die Archivierungsphase zu bestätigen.