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.
Verstehen Sie benutzerdefinierte Präfixe für Amazon S3 S3-Objekte
Objekte, die an Amazon S3 geliefert werden, folgen dem Namensformat von <evaluated prefix><suffix>. Sie können Ihr benutzerdefiniertes Präfix angeben, das Ausdrücke enthält, die zur Laufzeit ausgewertet werden. Das von Ihnen angegebene benutzerdefinierte Präfix überschreibt das Standardpräfix vonyyyy/MM/dd/HH
.
Sie können Ausdrücke der folgenden Formen in Ihrem benutzerdefinierten Präfix verwenden: !{namespace:
, wobei value
}namespace
einer von den beiden sein kann, wie in den folgenden Abschnitten erläutert.
-
firehose
-
timestamp
-
partitionKeyFromQuery
-
partitionKeyFromLambda
Wenn ein Präfix mit einem Schrägstrich endet, wird es als Ordner im Amazon-S3-Bucket angezeigt. Weitere Informationen finden Sie unter Amazon S3 Object Name Format im Amazon Data FirehoseDeveloper Guide.
Namespace timestamp
Gültige Werte für diesen Namespace sind Zeichenketten, die gültige DateTimeFormatterJava-Zeichenketten!{timestamp:yyyy}
als 2018
ausgewertet.
Bei der Auswertung von Zeitstempeln verwendet Firehose den ungefähren Ankunftszeitstempel des ältesten Datensatzes, der in dem zu schreibenden Amazon S3 S3-Objekt enthalten ist.
Standardmäßig ist der Zeitstempel in UTC. Sie können jedoch eine Zeitzone angeben, die Sie bevorzugen. Sie können beispielsweise die Zeitzone für Asien/Tokio in der AWS Management Console oder in der API-Parametereinstellung (CustomTimeZone) konfigurieren, wenn Sie Japan Standard Time anstelle von UTC verwenden möchten. Eine Liste der unterstützten Zeitzonen finden Sie unter Amazon S3 Object Name Format.
Wenn Sie den Namespace timestamp
mehr als einmal in demselben Präfixausdruck verwenden, werden alle Instances mit demselben Zeitpunkt ausgewertet.
Namespace firehose
Es gibt zwei Werte, die Sie mit diesem Namespace verwenden können: error-output-type
und random-string
. In der folgenden Tabelle wird beschrieben, wie Sie diese verwenden.
Konvertierung | Beschreibung | Beispieleingabe | Beispielausgabe | Hinweise |
---|---|---|---|---|
error-output-type |
Ergibt je nach Konfiguration Ihres Firehose-Streams und der Ursache des Fehlers eine der folgenden Zeichenketten: {processing-failed, -failed, AmazonOpenSearchService splunk-failed,,}. format-conversion-failed http-endpoint-failed Wenn Sie ihn mehr als einmal in demselben Ausdruck verwenden, werden alle Instances als dieselbe Fehlerzeichenfolge ausgewertet. |
myPrefix/result=!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd} |
myPrefix/result=processing-failed/2018/08/03 |
Der error-output-type Wert kann nur in dem Feld verwendet werden. ErrorOutputPrefix |
random-string |
Wird als zufällige Zeichenfolge von 11 Zeichen ausgewertet. Wenn Sie ihn mehr als einmal in demselben Ausdruck verwenden, werden alle Instances als neue zufällige Zeichenfolge ausgewertet. |
myPrefix/!{firehose:random-string}/ |
myPrefix/046b6c7f-0b/ |
Sie können ihn mit beiden Präfixtypen verwenden. Sie können ihn an den Anfang der Formatzeichenfolge setzen, um ein zufälliges Präfix abzurufen. Dies ist manchmal erforderlich, wenn sie einen extrem hohen Durchsatz mit Amazon S3 erreichen möchten. |
partitionKeyFromLambda
- und partitionKeyFromQuery
-Namespaces
Für die dynamische Partitionierung müssen Sie das folgende Ausdrucksformat in Ihrem S3-Bucket-Präfix verwenden: !{namespace:value}
, wobei Namespace entweder partitionKeyFromQuery
, partitionKeyFromLambda
oder beides sein kann. Wenn Sie Inline-Parsing verwenden, um die Partitionierungsschlüssel für Ihre Quelldaten zu erstellen, müssen Sie einen S3-Bucket-Präfixwert angeben, der aus Ausdrücken besteht, die im folgenden Format angegeben sind: "partitionKeyFromQuery:keyID"
. Wenn Sie AWS
-Lambda-Funktion verwenden, um die Partitionierungsschlüssel für Ihre Quelldaten zu erstellen, müssen Sie einen S3-Bucket-Präfixwert angeben, der aus Ausdrücken besteht, die im folgenden Format angegeben sind: "partitionKeyFromLambda:keyID"
. Weitere Informationen finden Sie unter „Wählen Sie Amazon S3 für Ihr Ziel“ unter Amazon Firehose-Stream erstellen.
Semantische Regeln
Folgende Regeln gelten für die Ausdrücke Prefix
und ErrorOutputPrefix
.
-
Für den Namespace
timestamp
wird jedes Zeichen ausgewertet, das nicht in einfache Anführungszeichen gesetzt ist. Anders ausgedrückt: Alle Zeichenfolgen mit durch Escape-Zeichen geschützten einfachen Anführungszeichen im Wertefeld werden unverändert übernommen. -
Wenn Sie ein Präfix angeben, das keinen Timestamp-Namespace-Ausdruck enthält, hängt Firehose den Ausdruck an den Wert im
!{timestamp:yyyy/MM/dd/HH/}
Feld an.Prefix
-
Die Sequenz
!{
kann nur in!{namespace:
-Ausdrücken angezeigt werden.value
} -
ErrorOutputPrefix
kann nur dann Null sein, wennPrefix
keine Ausdrücke enthält. In diesem Fall wirdPrefix
als<specified-prefix>yyyy/MM/DDD/HH/
undErrorOutputPrefix
als<specified-prefix><error-output-type>yyyy/MM/DDD/HH/
ausgewertet.DDD
repräsentiert den Tag des Jahres. -
Wenn Sie einen Ausdruck für
ErrorOutputPrefix
angeben, müssen Sie mindestens eine Instance von!{firehose:error-output-type}
einschließen. -
Prefix
kann nicht!{firehose:error-output-type}
enthalten. -
Weder
Prefix
nochErrorOutputPrefix
können nach der Auswertung länger als 512 Zeichen sein. -
Wenn das Ziel Amazon Redshift ist, darf
Prefix
keine Ausdrücke enthalten undErrorOutputPrefix
muss Null sein. -
Wenn das Ziel Amazon OpenSearch Service oder Splunk ist und kein Ziel angegeben
ErrorOutputPrefix
ist, verwendet Firehose dasPrefix
Feld für fehlgeschlagene Datensätze. -
Wenn das Ziel Amazon S3 ist, werden das
Prefix
undErrorOutputPrefix
in der Amazon-S3-Zielkonfiguration für erfolgreiche Datensätze bzw. fehlgeschlagene Datensätze verwendet. Wenn Sie die AWS CLI oder die API verwenden, können Sie mit derExtendedS3DestinationConfiguration
eine Amazon-S3-Backup-Konfiguration mit einem eigenenPrefix
undErrorOutputPrefix
angeben. -
Wenn Sie Amazon S3 verwenden AWS Management Console und das Ziel auf Amazon S3 setzen, verwendet Firehose das
Prefix
undErrorOutputPrefix
in der Zielkonfiguration für erfolgreiche bzw. fehlgeschlagene Datensätze. Wenn Sie ein Präfix mithilfe von Ausdrücken angeben, müssen Sie das Fehlerpräfix einschließlich!{firehose:error-output-type}
angeben. -
Wenn Sie
ExtendedS3DestinationConfiguration
mit der AWS CLI, der API oder, wenn Sie eine angeben AWS CloudFormation, Firehose verwendenS3BackupConfiguration
, stellt Firehose keinen StandardErrorOutputPrefix
bereit. -
Sie können beim Erstellen von
partitionKeyFromLambda
Ausdrücken keinepartitionKeyFromQuery
Namespaces verwenden. ErrorOutputPrefix
Beispielpräfixe
Eingabe | Ausgewertetes Präfix (10:30 UTC am 27. August 2018) |
---|---|
|
|
|
Ungültige Eingabe: ErrorOutputPrefix kann nicht Null sein, wenn Präfix Ausdrücke enthält |
|
|
|
|
|
|