Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erstellen eines ML-Eingabekanals in AWS Clean Rooms ML
Voraussetzungen:
-
Und AWS-Konto mit Zugriff auf AWS Clean Rooms
-
Eine Zusammenarbeit, AWS Clean Rooms in der Sie den ML-Eingangskanal erstellen möchten
-
Berechtigungen zum Abfragen von Daten und zum Erstellen von ML-Eingabekanälen in der Kollaboration.
-
(Optional) Ein vorhandener Modellalgorithmus, der dem ML-Eingabekanal zugeordnet werden soll, oder Berechtigungen zum Erstellen eines neuen
-
(Optional) Tabellen mit Analyseregeln, die für das angegebene Modell ausgeführt werden können.
-
(Optional) Eine vorhandene SQL-Abfrage- oder Analysevorlage, die für die Generierung des Datensatzes verwendet werden soll
-
(Optional) Eine vorhandene Servicerolle mit entsprechenden Berechtigungen oder Berechtigungen zum Erstellen einer neuen Servicerolle
-
(Optional) Ein benutzerdefinierter AWS KMS Schlüssel, wenn Sie Ihren eigenen Verschlüsselungsschlüssel verwenden möchten
-
Entsprechende Berechtigungen zum Erstellen und Verwalten von ML-Modellen in der Zusammenarbeit
Ein ML-Eingabekanal ist ein Datensatz, der anhand einer bestimmten Datenabfrage erstellt wird. Mitglieder mit der Fähigkeit, Daten abzufragen, können ihre Daten für Training und Inferenz vorbereiten, indem sie einen ML-Eingabekanal erstellen. Durch die Erstellung eines ML-Eingangskanals können diese Daten in verschiedenen Trainingsmodellen innerhalb derselben Zusammenarbeit verwendet werden. Sie sollten separate ML-Eingangskanäle für Training und Inferenz erstellen.
Um einen ML-Eingabekanal zu erstellen, müssen Sie die SQL-Abfrage angeben, die zur Abfrage der Eingabedaten verwendet wird, und den ML-Eingabekanal erstellen. Die Ergebnisse dieser Abfrage werden niemals an ein Mitglied weitergegeben und bleiben innerhalb der Grenzen von Clean Rooms ML. Die Referenz Amazon Resource Name (ARN) wird in den nächsten Schritten verwendet, um ein Modell zu trainieren oder Inferenz auszuführen.
- Console
-
Um einen ML-Eingangskanal (Konsole) zu erstellen
-
Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Clean Rooms Konsole unter https://console.aws.amazon.com/cleanrooms
. -
Wählen Sie im linken Navigationsbereich Collaborations aus.
-
Wählen Sie auf der Seite Collaborations die Kollaboration aus, für die Sie einen ML-Eingabekanal erstellen möchten.
-
Wählen Sie nach dem Öffnen der Kollaboration die Registerkarte ML-Modelle aus.
-
Wählen Sie unter Benutzerdefinierte ML-Modelle im Abschnitt ML-Eingangskanäle die Option ML-Eingangskanal erstellen aus.
-
Gehen Sie auf der Seite „ML-Eingangskanal erstellen“ für Details zum ML-Eingangskanal wie folgt vor:
-
Geben Sie unter Name einen eindeutigen Namen für Ihren Kanal ein.
-
(Optional) Geben Sie unter Beschreibung eine Beschreibung Ihres Kanals ein.
-
Wählen Sie unter Assoziierter Modellalgorithmus den zu verwendenden Algorithmus aus.
Wählen Sie Modellalgorithmus zuordnen aus, um einen neuen Modellalgorithmus hinzuzufügen.
-
-
Wählen Sie für Datensatz eine Methode zum Generieren des Trainingsdatensatzes aus:
-
Wählen Sie SQL-Abfrage, um die Ergebnisse einer SQL-Abfrage als Trainingsdatensatz zu verwenden.
Wenn Sie SQL-Abfrage gewählt haben, geben Sie Ihre Abfrage in das SQL-Abfragefeld ein.
(Optional) Um eine Abfrage zu importieren, die Sie kürzlich verwendet haben, wählen Sie Aus letzten Abfragen importieren aus.
-
Wählen Sie Analysevorlage, um die Ergebnisse einer Analysevorlage als Trainingsdatensatz zu verwenden.
Warnung
Die Generierung synthetischer Daten schützt vor dem Ableiten einzelner Attribute, unabhängig davon, ob bestimmte Personen im ursprünglichen Datensatz vorhanden sind oder Lernattribute dieser Personen vorhanden sind. Es verhindert jedoch nicht, dass wörtliche Werte aus dem ursprünglichen Datensatz, einschließlich persönlich identifizierbarer Informationen (PII), im synthetischen Datensatz erscheinen.
Wir empfehlen, Werte im Eingabedatensatz zu vermeiden, die nur einer betroffenen Person zugeordnet sind, da diese eine betroffene Person neu identifizieren können. Wenn beispielsweise nur ein Benutzer in einer Postleitzahl wohnt, würde das Vorhandensein dieser Postleitzahl im synthetischen Datensatz bestätigen, dass sich der Benutzer im ursprünglichen Datensatz befand. Techniken wie das Kürzen von Werten mit hoher Genauigkeit oder das Ersetzen ungewöhnlicher Kataloge durch andere können verwendet werden, um dieses Risiko zu minimieren. Diese Transformationen können Teil der Abfrage sein, mit der der ML-Eingabekanal erstellt wurde.
-
Wenn keine Tabellen verknüpft sind, wählen Sie Tabelle zuordnen aus, um Tabellen mit einer Analyseregel hinzuzufügen, die für das angegebene Modell ausgeführt werden kann.
-
Wählen Sie den Worker-Typ aus, der bei der Erstellung dieses Datenkanals verwendet werden soll. Der Standard-Arbeitstyp ist CR.1X. Geben Sie die Anzahl der zu verwendenden Worker an. Die Standardnummer der Arbeiter ist 16. So geben Sie Spark-Eigenschaften an:
-
Erweitern Sie Spark-Eigenschaften.
-
Wählen Sie Spark-Eigenschaften hinzufügen.
-
Wählen Sie im Dialogfeld „Spark-Eigenschaften“ einen Eigenschaftsnamen aus der Dropdownliste aus und geben Sie einen Wert ein.
Die folgenden Tabellen enthalten eine Definition für jede Eigenschaft.
Weitere Informationen zu Spark-Eigenschaften finden Sie unter Spark-Eigenschaften
in der Apache Spark-Dokumentation. Anmerkung
Sie können maximal 50 Spark-Eigenschaften konfigurieren. Jeder Eigenschaftswert kann bis zu 500 Zeichen lang sein.
Eigenschaftenname Description Standardwert spark.task.maxFailures
Steuert, wie oft eine Aufgabe hintereinander fehlschlagen kann, bevor der Job fehlschlägt. Erfordert einen Wert größer oder gleich 1. Die Anzahl der zulässigen Wiederholungen entspricht diesem Wert minus 1. Die Anzahl der Fehlschläge wird zurückgesetzt, wenn ein Versuch erfolgreich ist. Fehler bei verschiedenen Aufgaben summieren sich nicht bis zu diesem Limit.
4
spark.sql.files.max PartitionBytes
Legt die maximale Anzahl von Byte fest, die beim Lesen aus dateibasierten Quellen wie Parquet, JSON und ORC in eine einzelne Partition gepackt werden sollen.
128 MB
spark.hadoop.fs.s3.max versucht es erneut
Legt die maximale Anzahl von Wiederholungsversuchen für Amazon S3 S3-Dateioperationen fest.
(Keine)
spark.network.timeout
Legt das Standard-Timeout für alle Netzwerkinteraktionen fest. Setzt die folgenden Timeout-Einstellungen außer Kraft, wenn sie nicht konfiguriert sind:
-
spark.storage.block ManagerHeartbeatTimeoutMs
-
spark.shuffle.io.ConnectionTimeout
-
spark.rpc.AskTimeout
-
spark.rpc.LookupTimeout
120 s
spark.rdd.com/presse
Gibt an, ob serialisierte RDD-Partitionen mit spark.io.compression.codec komprimiert werden sollen. Gilt für StorageLevel.MEMORY _ONLY_SER in Java und Scala oder StorageLevel.MEMORY _ONLY in Python. Reduziert den Speicherplatz, erfordert jedoch zusätzliche CPU-Verarbeitungszeit.
false
spark.shuffle.spill.com/press
Gibt an, ob Shuffle-Spill-Daten mit spark.io.compression.codec komprimiert werden sollen.
true
spark.shuffle.com/press
Gibt an, ob Map-Ausgabedateien komprimiert werden sollen. Bei der Komprimierung wird spark.io.compression.codec verwendet.
true
spark.shuffle.service.index.cache.size
Legt die Cache-Größenbeschränkung in Byte fest, sofern nicht anders angegeben.
100 m
spark.shuffle.io.max versucht es erneut
Legt die maximale Anzahl von Wiederholungen für Abrufe fest, die aufgrund von Ausnahmen fehlschlagen. IO-related
3
spark.shuffle.io.RetryWait
Legt die Wartezeit zwischen Wiederholungsversuchen von Abrufen fest. Die maximale Verzögerung, die durch einen erneuten Versuch verursacht wird, beträgt standardmäßig 15 Sekunden, berechnet als MaxRetries * RetryWait.
5s
spark.shuffle.io.ConnectionTimeout
Legt fest, dass das Timeout für hergestellte Verbindungen zwischen Shuffle-Servern und Clients als inaktiv markiert und geschlossen wird, wenn noch offene Abrufanforderungen, aber kein Verkehr auf dem Kanal vorhanden sind.
(Wert von spark.network.timeout)
spark.driver.max ResultSize
Legt die Gesamtgrößenbeschränkung der serialisierten Ergebnisse aller Partitionen für jede Spark-Aktion in Byte fest. Sollte mindestens 1 MB oder 0 für unbegrenzt sein.
1 g
spark.memory.fraction
Legt den Bruchteil von (Heap-Speicherplatz — 300 MB) fest, der für Ausführung und Speicherung verwendet wird. Je niedriger dieser Wert ist, desto häufiger kommt es zu Datenverlusten und zum Löschen zwischengespeicherter Daten. Es wird empfohlen, diesen Wert auf dem Standardwert zu belassen.
0.6
spark.scheduler.mode
Legt den Zeitplanungsmodus zwischen Jobs fest, die an denselben Server weitergeleitet werden. SparkContext Kann auf FAIR gesetzt werden, um Fair Sharing zu verwenden, anstatt Jobs nacheinander in die Warteschlange zu stellen. Unterstützte Werte: FAIR, FIFO.
FIFO
spark.sql.adaptive.advisory PartitionSizeInBytes
Legt die Zielgröße in Byte für Shuffle-Partitionen während der adaptiven Optimierung fest, wenn spark.sql.adaptive.enabled den Wert true hat. Steuert die Partitionsgröße beim Zusammenführen kleiner Partitionen oder beim Teilen schiefer Partitionen.
(Wert von spark.sql.adaptive.shuffle.target) PostShuffleInputSize
spark.sql.adaptive.auto BroadcastJoinThreshold
Legt die maximale Tabellengröße in Byte für die Übertragung an Worker-Knoten bei Joins fest. Gilt nur im adaptiven Framework. Verwendet denselben Standardwert wie BroadcastJoinThreshold spark.sql.auto. Auf -1 setzen, um die Übertragung zu deaktivieren.
(Keine)
spark.sql.adaptive.coalesce Partitions.enabled
Gibt an, ob zusammenhängende Shuffle-Partitionen, die auf spark.sql.adaptive.advisory basieren, zusammengeführt werden sollen, um die Aufgabengröße zu optimieren. PartitionSizeInBytes Erfordert, dass spark.sql.adaptive.enabled den Wert true hat.
true
spark.sql.adaptive.coalesce Partitions.initialPartitionNum
Definiert die anfängliche Anzahl von Shuffle-Partitionen vor dem Zusammenführen. Erfordert, dass sowohl spark.sql.adaptive.enabled als auch spark.sql.adaptive.coalesce den Wert true haben. Partitions.enabled Standardmäßig wird der Wert von spark.sql.shuffle.partitions verwendet.
(Keine)
spark.sql.adaptive.coalesce Partitions.minPartitionSize
Legt die Mindestgröße für zusammengeführte Shuffle-Partitionen fest, um zu verhindern, dass Partitionen während der adaptiven Optimierung zu klein werden.
1 MB
spark.sql.adaptive.coalesce Partitions.parallelismFirst
Gibt an, ob die Partitionsgrößen beim Zusammenführen von Partitionen auf der Grundlage der Cluster-Parallelität und nicht auf der Grundlage von spark.sql.adaptive.advisory berechnet werden sollen. PartitionSizeInBytes Generiert kleinere Partitionsgrößen als die konfigurierte Zielgröße, um die Parallelität zu maximieren. Wir empfehlen, diesen Wert bei stark frequentierten Clustern auf „False“ zu setzen, um die Ressourcennutzung zu verbessern und übermäßig kleine Aufgaben zu vermeiden.
true
spark.sql.adaptive.enabled
Gibt an, ob die adaptive Abfrageausführung aktiviert werden soll, um Abfragepläne während der Abfrageausführung auf der Grundlage genauer Laufzeitstatistiken erneut zu optimieren.
true
spark.sql.adaptive.force OptimizeSkewedJoin
Gibt an, ob die Aktivierung OptimizeSkewedJoin erzwungen werden soll, auch wenn dadurch zusätzlicher Shuffle eingeführt wird.
false
spark.sql.adaptive.local ShuffleReader.enabled
Gibt an, ob lokale Shuffle-Reader verwendet werden sollen, wenn eine Shuffle-Partitionierung nicht erforderlich ist, z. B. nach der Konvertierung von Sort-Merge-Joins in Broadcast-Hash-Joins. Erfordert, dass spark.sql.adaptive.enabled den Wert true hat.
true
spark.sql.adaptive.max ShuffledHashJoinLocalMapThreshold
Legt die maximale Partitionsgröße in Byte für die Erstellung lokaler Hash-Maps fest. Priorisiert gemischte Hash-Joins gegenüber Sort-Merge-Joins, wenn:
-
Dieser Wert entspricht oder übersteigt spark.sql.adaptive.advisory PartitionSizeInBytes
-
Alle Partitionsgrößen liegen innerhalb dieses Grenzwerts
Setzt die Einstellung spark.sql.join.prefer SortMergeJoin außer Kraft.
0 Byte
spark.sql.adaptive.optimize SkewsInRebalancePartitions.enabled
Gibt an, ob schiefe Shuffle-Partitionen optimiert werden sollen, indem sie auf der Grundlage von spark.sql.adaptive.advisory in kleinere Partitionen aufgeteilt werden. PartitionSizeInBytes Erfordert, dass spark.sql.adaptive.enabled den Wert true hat.
true
spark.sql.adaptive.rebalance PartitionsSmallPartitionFactor
Definiert den Größenschwellenwert für das Zusammenführen von Partitionen beim Teilen. Partitionen, die kleiner sind als dieser Faktor multipliziert mit PartitionSizeInBytes spark.sql.adaptive.advisory, werden zusammengeführt.
0.2
spark.sql.adaptive.skew Join.enabled
Gibt an, ob Datenverzerrungen in gemischten Verknüpfungen behandelt werden sollen, indem schiefe Partitionen aufgeteilt und optional repliziert werden. Gilt für Sort-Merge- und Shuffled-Hash-Joins. Erfordert, dass spark.sql.adaptive.enabled wahr ist.
true
spark.sql.adaptive.skew Join.skewedPartitionFactor
Bestimmt den Größenfaktor, der den Partitionsversatz bestimmt. Eine Partition ist schief, wenn ihre Größe beide Werte überschreitet:
-
Dieser Faktor wird mit der mittleren Partitionsgröße multipliziert
-
Der Wert von spark.sql.adaptive.skew Join.skewedPartitionThresholdInBytes
5
spark.sql.adaptive.skew Join.skewedPartitionThresholdInBytes
Legt den Größenschwellenwert in Byte zur Identifizierung schiefer Partitionen fest. Eine Partition ist schief, wenn ihre Größe beide Werte überschreitet:
-
Dieser Schwellenwert
-
Die mittlere Partitionsgröße multipliziert mit spark.sql.adaptive.skew Join.skewedPartitionFactor
Wir empfehlen, diesen Wert größer als spark.sql.adaptive.advisory festzulegen. PartitionSizeInBytes
256 MB
spark.sql.BroadcastTimeout
Steuert den Timeout-Zeitraum in Sekunden für die Broadcast-Operationen bei Broadcast-Joins.
300 Sekunden
spark.sql.cbo.enabled
Gibt an, ob die kostenbasierte Optimierung (CBO) für die Schätzung von Planstatistiken aktiviert werden soll.
false
spark.sql.cbo.join Reorder.dp.star.filter
Gibt an, ob bei der kostenbasierten Join-Aufzählung Heuristiken des Star-Join-Filters angewendet werden sollen.
false
spark.sql.cbo.join Reorder.dp.threshold
Legt die maximale Anzahl verbundener Knoten fest, die im dynamischen Programmieralgorithmus zulässig sind.
12
spark.sql.cbo.join Reorder.enabled
Gibt an, ob die Neuordnung von Verknüpfungen bei der kostenbasierten Optimierung (CBO) aktiviert werden soll.
false
spark.sql.cbo.plan Stats.enabled
Gibt an, ob bei der Generierung logischer Pläne Zeilenanzahl und Spaltenstatistiken aus dem Katalog abgerufen werden sollen.
false
spark.sql.cbo.star SchemaDetection
Gibt an, ob die Neuordnung von Verknüpfungen auf der Grundlage der Star-Schemaerkennung aktiviert werden soll.
false
spark.sql.files.max PartitionNum
Legt die maximale Zielanzahl von geteilten Dateipartitionen für dateibasierte Quellen (Parquet, JSON und ORC) fest. Skaliert Partitionen neu, wenn die anfängliche Anzahl diesen Wert überschreitet. Dies ist ein empfohlenes Ziel, kein garantiertes Limit.
(Keine)
spark.sql.files.max RecordsPerFile
Legt die maximale Anzahl von Datensätzen fest, die in eine einzelne Datei geschrieben werden können. Wenn der Wert auf Null oder einen negativen Wert gesetzt ist, gilt kein Limit.
0
spark.sql.files.min PartitionNum
Legt die angestrebte Mindestanzahl von geteilten Dateipartitionen für dateibasierte Quellen (Parquet, JSON und ORC) fest. Die Standardeinstellung ist spark.sql.leaf. NodeDefaultParallelism Dies ist ein empfohlenes Ziel, kein garantiertes Limit.
(Keine)
spark.sql.in MemoryColumnarStorage.batchSize
Steuert die Batchgröße für das spaltenförmige Caching. Eine Erhöhung der Größe verbessert die Speichernutzung und Komprimierung, erhöht jedoch das Risiko von Fehlern aufgrund unzureichender Speicherkapazität.
10000
spark.sql.in MemoryColumnarStorage.compressed
Gibt an, ob auf der Grundlage von Datenstatistiken automatisch Komprimierungscodecs für Spalten ausgewählt werden sollen.
true
spark.sql.in MemoryColumnarStorage.enableVectorizedReader
Gibt an, ob vektorisiertes Lesen für das spaltenorientierte Zwischenspeichern aktiviert werden soll.
true
spark.sql.legacy.allow HashOnMapType
Gibt an, ob Hash-Operationen für Map-Datenstrukturen zulässig sind. Diese Legacy-Einstellung gewährleistet die Kompatibilität mit der Map-Typ-Behandlung älterer Spark-Versionen.
(Keine)
spark.sql.legacy.allow NegativeScaleOfDecimal
Gibt an, ob negative Skalenwerte in Dezimaltypdefinitionen zulässig sind. Diese Legacy-Einstellung gewährleistet die Kompatibilität mit älteren Spark-Versionen, die negative Dezimalskalen unterstützten.
(Keine)
spark.sql.legacy.cast ComplexTypesToString.enabled
Gibt an, ob das veraltete Verhalten für die Umwandlung komplexer Typen in Zeichenketten aktiviert werden soll. Behält die Kompatibilität mit den Typkonvertierungsregeln älterer Spark-Versionen bei.
(Keine)
spark.sql.legacy.char VarcharAsString
Gibt an, ob die Typen CHAR und VARCHAR als STRING-Typen behandelt werden sollen. Diese Legacy-Einstellung bietet Kompatibilität mit der Verarbeitung von String-Typen in älteren Spark-Versionen.
(Keine)
spark.sql.legacy.create EmptyCollectionUsingStringType
Gibt an, ob leere Sammlungen mithilfe von Elementen vom Typ Zeichenfolge erstellt werden sollen. Diese Legacy-Einstellung gewährleistet die Kompatibilität mit dem Verhalten älterer Spark-Versionen bei der Initialisierung von Sammlungen.
(Keine)
spark.sql.legacy.exponent LiteralAsDecimal.enabled
Gibt an, ob exponentielle Literale als Dezimaltypen interpretiert werden sollen. Diese Legacy-Einstellung gewährleistet die Kompatibilität mit der numerischen Literalverarbeitung älterer Spark-Versionen.
(Keine)
spark.sql.legacy.json.allow EmptyString.enabled
Gibt an, ob leere Zeichenketten bei der JSON-Verarbeitung zulässig sind. Diese Legacy-Einstellung gewährleistet die Kompatibilität mit dem JSON-Parsing-Verhalten älterer Spark-Versionen.
(Keine)
spark.sql.legacy.parquet.int96 RebaseModelRead
Gibt an, ob beim Lesen von Parquet-Dateien der alte INT96-Timestamp-Rebase-Modus verwendet werden soll. Diese Legacy-Einstellung gewährleistet die Kompatibilität mit der Zeitstempelverarbeitung älterer Spark-Versionen.
(Keine)
spark.sql.legacy.time ParserPolicy
Steuert das Verhalten bei der Zeitanalyse aus Gründen der Abwärtskompatibilität. Diese ältere Einstellung bestimmt, wie Zeitstempel und Datumsangaben anhand von Zeichenketten analysiert werden.
(Keine)
spark.sql.legacy.type Coercion.datetimeToString.enabled
Gibt an, ob das Zwangsverhalten älterer Typen bei der Konvertierung von Datetime-Werten in Zeichenketten aktiviert werden soll. Behält die Kompatibilität mit den Datetime-Konvertierungsregeln älterer Spark-Versionen bei.
(Keine)
spark.sql.max SinglePartitionBytes
Legt die maximale Partitionsgröße in Byte fest. Der Planer führt Shuffle-Operationen für größere Partitionen ein, um die Parallelität zu verbessern.
128 m
spark.sql.MetadatacacheTTL Sekunden
Steuert die Time-to-Live (TTL) für Metadaten-Caches. Gilt für Metadaten von Partitionsdateien und Sitzungskatalog-Caches. Erfordert:
-
Ein positiver Wert größer als Null
-
spark.sql.CatalogImplementation ist auf Hive gesetzt
-
PartitionFileCacheSize spark.sql.hive.filesource größer als Null
-
spark.sql.hive.manage auf true gesetzt FilesourcePartitions
-1000 ms
spark.sql.optimizer.collapse ProjectAlwaysInline
Gibt an, ob benachbarte Projektionen und Inline-Ausdrücke ausgeblendet werden sollen, auch wenn dies zu Duplizierungen führt.
false
spark.sql.optimizer.dynamic PartitionPruning.enabled
Gibt an, ob Prädikate für Partitionsspalten generiert werden sollen, die als Join-Schlüssel verwendet werden.
true
spark.sql.optimizer.enable CsvExpressionOptimization
Gibt an, ob CSV-Ausdrücke im SQL-Optimizer optimiert werden sollen, indem unnötige Spalten aus from_csv-Vorgängen entfernt werden.
true
spark.sql.optimizer.enable JsonExpressionOptimization
Gibt an, ob JSON-Ausdrücke im SQL-Optimizer wie folgt optimiert werden sollen:
-
Löschen unnötiger Spalten aus from_json-Vorgängen
-
Vereinfachung der Kombinationen from_json und to_json
-
Optimierung von named_struct-Operationen
true
spark.sql.Optimizer.ExcludedRules
Definiert zu deaktivierende Optimizer-Regeln, identifiziert durch kommagetrennte Regelnamen. Einige Regeln können nicht deaktiviert werden, da sie aus Gründen der Richtigkeit erforderlich sind. Der Optimizer protokolliert, welche Regeln erfolgreich deaktiviert wurden.
(Keine)
spark.sql.optimizer.runtime.bloom Filter.applicationSideScanSizeThreshold
Legt die minimale aggregierte Scangröße in Byte fest, die erforderlich ist, um einen Bloom-Filter auf der Anwendungsseite einzufügen.
10 GB
spark.sql.optimizer.runtime.bloom Filter.creationSideThreshold
Definiert den maximalen Größenschwellenwert für das Einfügen eines Bloom-Filters auf der Erstellungsseite.
10 MB
spark.sql.optimizer.runtime.bloom Filter.enabled
Gibt an, ob ein Bloom-Filter eingefügt werden soll, um Shuffle-Daten zu reduzieren, wenn eine Seite eines Shuffle-Joins ein selektives Prädikat hat.
true
spark.sql.optimizer.runtime.bloom Filter.expectedNumItems
Definiert die Standardanzahl erwarteter Elemente im Runtime-Bloom-Filter.
1000000
spark.sql.optimizer.runtime.bloom Filter.maxNumBits
Legt die maximale Anzahl von Bits fest, die im Runtime-Bloom-Filter zulässig sind.
67108864
spark.sql.optimizer.runtime.bloom Filter.maxNumItems
Legt die maximale Anzahl erwarteter Elemente fest, die im Runtime-Bloom-Filter zulässig sind.
4000000
spark.sql.optimizer.runtime.bloom Filter.numBits
Definiert die Standardanzahl der im Runtime-Bloom-Filter verwendeten Bits.
8388608
spark.sql.optimizer.runtime.rowlevel OperationGroupFilter.enabled
Gibt an, ob die Laufzeitgruppenfilterung für Operationen auf Zeilenebene aktiviert werden soll. Ermöglicht Datenquellen:
-
Löschen ganzer Datengruppen (wie Dateien oder Partitionen) mithilfe von Datenquellenfiltern
-
Führen Sie Laufzeitabfragen aus, um übereinstimmende Datensätze zu identifizieren
-
Verwerfen Sie unnötige Gruppen, um teure Neuschreibungen zu vermeiden
Einschränkungen:
-
Nicht alle Ausdrücke können in Datenquellenfilter konvertiert werden
-
Einige Ausdrücke erfordern eine Spark-Auswertung (z. B. Unterabfragen)
true
spark.sql.optimizer.runtime Filter.number.threshold
Legt die Gesamtzahl der injizierten Laufzeitfilter (ohne DPP) fest. Dies dient dazu, Treiber-OOMs mit zu vielen Bloom-Filtern zu verhindern.
10
spark.sql.optimizer.runtime Filter.semiJoinReduction.enabled
Gibt an, ob ein Semi-Join eingefügt werden soll, um Shuffle-Daten zu reduzieren, wenn eine Seite eines Shuffle-Joins ein selektives Prädikat hat.
false
spark.sql.parquet.AggregatePushDown
Gibt an, ob Aggregate zur Optimierung nach Parquet übertragen werden sollen. Unterstützt:
-
MIN und MAX für die Typen Boolean, Integer, Float und Date
-
COUNT für alle Datentypen
Löst eine Ausnahme aus, wenn Statistiken in einer Fußzeile einer Parquet-Datei fehlen.
false
spark.sql.parquet.columnar ReaderBatchSize
Steuert die Anzahl der Zeilen in jedem vektorisierten Parquet-Reader-Stapel. Wählen Sie einen Wert, der den Leistungsaufwand und die Speichernutzung in Einklang bringt, um Fehler bei unzureichendem Arbeitsspeicher zu vermeiden.
4096
spark.sql.parquet.enable VectorizedReader
Gibt an, ob die vektorisierte Parquet-Decodierung aktiviert werden soll.
true
spark.sql.shuffle.partitions
Legt die Standardanzahl von Partitionen für das Mischen von Daten bei Verknüpfungen oder Aggregationen fest. Kann zwischen Neustarts strukturierter Streaming-Abfragen von derselben Checkpoint-Position aus nicht geändert werden.
200
spark.sql.shuffled HashJoinFactor
Definiert den Multiplikationsfaktor, der verwendet wird, um die Eignung für einen Shuffle-Hash-Join zu bestimmen. Ein Shuffle-Hash-Join wird ausgewählt, wenn die Datengröße der kleinen Seite multipliziert mit diesem Faktor kleiner als die Datengröße der großen Seite ist.
3
spark.sql.sources.parallel PartitionDiscovery.threshold
Legt die maximale Anzahl von Pfaden für die treiberseitige Dateiauflistung mit dateibasierten Quellen (Parquet, JSON und ORC) fest. Wenn sie bei der Partitionserkennung überschritten werden, werden Dateien mithilfe eines separaten verteilten Spark-Jobs aufgelistet.
32
spark.sql.statistics.histogram.enabled
Gibt an, ob bei der Berechnung der Spaltenstatistiken Histogramme mit gleicher Höhe generiert werden sollen, um die Schätzgenauigkeit zu verbessern. Erfordert einen zusätzlichen Tabellenscan, der über den für einfache Spaltenstatistiken erforderlichen hinausgeht.
false
spark.dynamic Allocation.executorIdleTimeout
Legt fest, wie lange ein Executor inaktiv sein muss, bevor er entfernt wird, wenn die dynamische Zuweisung aktiviert ist.
60er Jahre
spark.dynamisch Allocation.schedulerBacklogTimeout
Legt fest, wie lange ausstehende Aufgaben zurückgestellt werden müssen, bevor neue Executoren angefordert werden, wenn die dynamische Zuweisung aktiviert ist.
1s
spark.dynamisch Allocation.sustainedSchedulerBacklogTimeout
Wie spark.dynamicAllocation.schedulerBacklogTimeout, wird aber nur für nachfolgende Executor-Anfragen verwendet.
(Wert von spark.dynamic) Allocation.schedulerBacklogTimeout
spark.scheduler.min RegisteredResourcesRatio
Legt das Mindestverhältnis registrierter Ressourcen (registrierte Ressourcen zu erwarteten Gesamtressourcen) fest, auf das gewartet werden soll, bevor die Planung beginnt. Wird als Double zwischen 0,0 und 1,0 angegeben. Unabhängig davon, ob das Mindestverhältnis der Ressourcen erreicht wurde, wird die maximale Wartezeit bis zum Beginn der Planung von RegisteredResourcesWaitingTime spark.scheduler.max gesteuert.
0.8
spark.scheduler.max RegisteredResourcesWaitingTime
Legt die maximale Wartezeit für die Registrierung von Ressourcen fest, bevor die Planung beginnt.
30s
spark.sql.hive.metastore PartitionPruningFallbackOnException
Gibt an, ob auf das Abrufen aller Partitionen aus dem Hive-Metastore zurückgegriffen und Partitionsbereinigungen auf der Spark-Client-Seite durchgeführt werden sollen, wenn ein Zugriff aus dem Metastore erfolgt. MetaException
false
Eigenschaftenname Description Standardwert spark.sql.auto BroadcastJoinThreshold
Legt die maximale Tabellengröße in Byte für die Übertragung an Worker-Knoten bei Joins fest. Auf -1 setzen, um die Übertragung zu deaktivieren.
10 MB (-1 für CR.4X 32 Arbeiter)
spark.dynamic Allocation.enabled
Gibt an, ob die dynamische Ressourcenzuweisung verwendet werden soll, bei der die Anzahl der für diese Anwendung registrierten Executoren je nach Arbeitslast nach oben oder unten skaliert wird.
true
spark.io.compression.codec
Legt den Codec fest, der zum Komprimieren interner Daten wie RDD-Partitionen, Ereignisprotokolle, Broadcast-Variablen und Shuffle-Ausgaben verwendet wird. Unterstützte Werte: lz4, snappy, zstd, gzip.
snappy
spark.sql.session.TimeZone
Definiert die Sitzungszeitzone für die Verarbeitung von Zeitstempeln in Zeichenfolgenliteralen und die Konvertierung von Java-Objekten. Akzeptiert:
-
Region-based IDs im area/city Format (z. B. America/Los _Angeles)
-
Zonenversätze im HH:mm:ss Format (+/-) HH, (+/-) HH:mm oder (+/-) (z. B. -08 oder + 01:00)
-
UTC oder Z als Aliase für + 00:00
UTC
-
-
Geben Sie für Datenspeicherung in Tagen die Anzahl der Tage ein, für die die Daten aufbewahrt werden sollen.
-
Wählen Sie als Ergebnisformat entweder CSV oder Parquet als Datenformat, das der ML-Eingabekanal verwenden soll.
-
-
Wählen Sie für Dienstzugriff den Namen der vorhandenen Servicerolle aus, der für den Zugriff auf diese Tabelle verwendet werden soll, oder wählen Sie Neue Servicerolle erstellen und verwenden aus.
-
Wählen Sie für Verschlüsselung die Option Geheimnis mit einem benutzerdefinierten KMS-Schlüssel verschlüsseln, um Ihren eigenen KMS-Schlüssel und zugehörige Informationen anzugeben. Andernfalls verwaltet Clean Rooms ML die Verschlüsselung.
-
(Optional) Wählen Sie unter Compute Payer das Collaboration-Mitglied aus, das die Rechenkosten für Abfragen bezahlt.
Anmerkung
Wenn es in der Kollaboration nur einen Kandidaten für Query Compute gibt, wird standardmäßig dieser Zahler verwendet.
-
(Optional) Wählen Sie unter Kostenträger für die Erzeugung synthetischer Daten das Mitglied der Zusammenarbeit aus, das die Kosten für die Generierung synthetischer Daten trägt.
Anmerkung
Diese Option wird angezeigt, wenn der ML-Eingangskanal eine Analysevorlage verwendet, die für die Ausgabe synthetischer Daten konfiguriert ist. Wenn es in der Kollaboration nur einen Zahlerkandidaten für die Generierung synthetischer Daten gibt, wird standardmäßig dieser Zahler verwendet.
-
Wählen Sie „ML-Eingangskanal erstellen“.
Die Erstellung des ML-Eingangskanals dauert einige Minuten. Auf der Registerkarte ML-Modelle finden Sie eine Liste der ML-Eingangskanäle.
Anmerkung
Nachdem der ML-Eingangskanal erstellt wurde, können Sie ihn nicht mehr bearbeiten.
-
- API
-
Um einen ML-Eingangskanal (API) zu erstellen
Führen Sie den folgenden Code mit Ihren spezifischen Parametern aus:
import boto3 acr_client = boto3.client('cleanroomsml') acr_client.create_ml_input_channel( name="ml_input_channel_name", membershipIdentifier='membership_id', configuredModelAlgorithmAssociations=[configured_model_algorithm_association_arn], retentionInDays=1, inputChannel={ "dataSource": { "protectedQueryInputParameters": { "sqlParameters": { "queryString": "select * fromtable", "computeConfiguration": { "worker": { "type": "CR.1X", "number":16, "properties": { "spark": { "spark configuration key": "spark configuration value", } } } }, "resultFormat": "PARQUET" } } }, "roleArn": "arn:aws:iam::111122223333:role/role_name" } ) channel_arn = resp['ML Input Channel ARN']