

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.

# Amazon SerDe Ion-Immobilienreferenz
<a name="ion-serde-using-ion-serde-properties"></a>

Dieses Thema enthält Informationen zu den SerDe Eigenschaften von `CREATE TABLE` Anweisungen in Athena. Weitere Informationen und Beispiele für die Nutzung von Amazon SerDe Ion-Eigenschaften finden Sie unter [SerDe Eigenschaften](https://github.com/amzn/ion-hive-serde/blob/master/docs/serde-properties.md) in der Amazon Ion SerDe Hive-Dokumentation unter. [GitHub](https://github.com/amzn/ion-hive-serde/tree/master/docs)

## So geben Sie Amazon SerDe Ion-Eigenschaften an
<a name="ion-serde-specifying-ion-serde-properties"></a>

Verwenden Sie die `WITH SERDEPROPERTIES` Klausel, um Eigenschaften für Amazon Ion Hive SerDe in Ihrem `CREATE TABLE` Kontoauszug anzugeben. Da `WITH SERDEPROPERTIES` es sich um ein Unterfeld der `ROW FORMAT SERDE` Klausel handelt, müssen Sie zuerst den Amazon Ion SerDe Hive-Klassenpfad angeben`ROW FORMAT SERDE`, wie die folgende Syntax zeigt.

```
...
ROW FORMAT SERDE
 'com.amazon.ionhiveserde.IonHiveSerDe'
WITH SERDEPROPERTIES (
 'property' = 'value',
 'property' = 'value',
...
)
```

Beachten Sie, dass, obwohl die `ROW FORMAT SERDE`-Klausel erforderlich ist, wenn Sie `WITH SERDEPROPERTIES` verwenden möchten, Sie entweder `STORED AS ION` oder die längere `INPUTFORMAT`- und `OUTPUTFORMAT`-Syntax verwenden können, um das Amazon-Ion-Format anzugeben.

## SerDe Eigenschaften von Amazon Ion
<a name="ion-serde-ion-serde-properties"></a>

Im Folgenden sind die Amazon SerDe Ion-Eigenschaften aufgeführt, die in `CREATE TABLE` Aussagen in Athena verwendet werden können.

**ion.encoding**  
Optional  
Standard: `BINARY`  
Werte: `BINARY`, `TEXT`  
Diese Eigenschaft gibt an, ob neu hinzugefügte Werte als [Amazon-Ion-Binär](https://amzn.github.io/ion-docs/docs/binary.html) oder Amazon-Ion-Textformat serialisiert werden.  
Das folgende SerDe Eigenschaftsbeispiel spezifiziert das Amazon Ion-Textformat.  

```
'ion.encoding' = 'TEXT'
```

**ion.fail\$1on\$1overflow**  
Optional  
Standard: `true`  
Werte: `true`, `false`  
Amazon Ion erlaubt beliebig große numerische Typen, während Hive dies nicht tut. Standardmäßig SerDe schlägt das fehl, wenn der Amazon Ion-Wert nicht in die Hive-Spalte passt. Sie können jedoch die `fail_on_overflow` Konfigurationsoption verwenden, um den Wert überlaufen zu lassen, anstatt dass er fehlschlägt.  
Diese Eigenschaft kann entweder auf Tabellen- oder Spaltenebene festgelegt werden. Um es auf Tabellenebene anzugeben, geben Sie `ion.fail_on_overflow` wie im folgenden Beispiel an. Dies legt das Standardverhalten für alle Spalten fest.  

```
'ion.fail_on_overflow' = 'true'
```
Um eine bestimmte Spalte zu steuern, geben Sie den Spaltennamen zwischen `ion` und `fail_on_overflow` an, getrennt durch Punkte, wie im folgenden Beispiel.  

```
'ion.<column>.fail_on_overflow' = 'false'
```

**ion.path\$1extractor.case\$1sensitive**  
Optional  
Standard: `false`  
Werte: `true`, `false`  
Bestimmt, ob bei Amazon-Ion-Feldnamen die Groß-/Kleinschreibung beachtet werden soll. Wenn`false`, SerDe ignoriert der Amazon Ion-Feldnamen bei der Groß- und Kleinschreibung.  
Angenommen, Sie haben ein Hive-Tabellenschema, das ein Feld `alias` in Kleinbuchstaben definiert, und ein Amazon Ion-Dokument mit sowohl einem `alias`-Feld als auch einem `ALIAS`-Feld, wie im folgenden Beispiel.  

```
-- Hive Table Schema
alias: STRING

-- Amazon Ion Document
{ 'ALIAS': 'value1'} 
{ 'alias': 'value2'}
```
Das folgende Beispiel zeigt SerDe Eigenschaften und die daraus resultierende extrahierte Tabelle, wenn die Berücksichtigung von Groß- und Kleinschreibung auf eingestellt ist: `false`  

```
-- Serde properties
'ion.alias.path_extractor' = '(alias)'
'ion.path_extractor.case_sensitive' = 'false'

--Extracted Table
| alias    |
|----------|
| "value1" |
| "value2" |
```
Das folgende Beispiel zeigt SerDe Eigenschaften und die daraus resultierende extrahierte Tabelle, wenn die Groß- und Kleinschreibung auf eingestellt ist`true`:  

```
-- Serde properties
'ion.alias.path_extractor' = '(alias)'
'ion.path_extractor.case_sensitive' = 'true'

--Extracted Table
| alias    |
|----------|
| "value2" |
```
Im zweiten Fall wird `value1` für das `ALIAS`-Feld ignoriert, wenn die Groß-/Kleinschreibung auf `true` eingestellt ist und der Pfad-Extraktor als `alias` angegeben ist.

**Ion. *<column>*.path\$1extractor**  
Optional  
Standard: Nicht angegeben  
Werte: Zeichenfolge mit Suchpfad  
Erstellt einen Pfad-Extraktor mit dem angegebenen Suchpfad für die angegebene Spalte. Pfad-Extraktoren ordnen Amazon-Ion-Felder Hive-Spalten zu. Wenn keine Pfad-Extraktoren angegeben werden, erstellt Athena dynamisch Pfad-Extraktoren zur Laufzeit basierend auf Spaltennamen.  
Im folgenden Beispiel wird der Pfad-Extraktor `example_ion_field` zum `example_hive_column` zugeordnet.  

```
'ion.example_hive_column.path_extractor' = '(example_ion_field)'
```
Weitere Informationen zu Pfad-Extraktoren und Suchpfaden finden Sie unter [Pfad-Extraktoren verwenden](ion-serde-using-path-extractors.md).

**ion.timestamp.serialization\$1offset**  
Optional  
Standard: `'Z'`  
Werte: `OFFSET`, wobei `OFFSET ` als `<signal>hh:mm` dargestellt wird. Beispielwerte: `01:00`, `+01:00`, `-09:30`, `Z` (UTC, wie 00:00 Uhr)  
Im Gegensatz zu Apache-Hive-[Zeitstempeln](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-timestamp), die keine integrierte Zeitzone haben und als Offset von der UNIX-Epoche gespeichert werden, haben Amazon-Ion-Zeitstempel einen Offset. Verwenden Sie diese Eigenschaft, um den Offset anzugeben, wenn Sie auf Amazon Ion serialisieren.  
Im folgenden Beispiel wird ein Offset von einer Stunde hinzugefügt.  

```
'ion.timestamp.serialization_offset' = '+01:00'       
```

**ion.serialize\$1null**  
Optional  
Standard: `OMIT`  
Werte: `OMIT`, `UNTYPED`, `TYPED`  
Amazon Ion SerDe kann so konfiguriert werden, dass Spalten mit Nullwerten entweder serialisiert oder weggelassen werden. Sie können wählen, stark typisierte Nullen auszuschreiben (`TYPED`) oder nicht typisierte Nullen (`UNTYPED`) enthalten. Stark typisierte Nullen werden basierend auf der Standardzuordnung des Typs Amazon Ion zu Hive bestimmt.  
Das folgende Beispiel gibt stark typisierte Nullen an.  

```
'ion.serialize_null'='TYPED'
```

**ion.ignore\$1malformed**  
Optional  
Standard: `false`  
Werte: `true`, `false`  
Wenn`true`, ignoriert falsch formatierte Einträge oder die gesamte Datei, wenn sie nicht gelesen SerDe werden kann. Weitere Informationen finden Sie unter [Fehlformatierte Dateien ignorieren](https://github.com/amzn/ion-hive-serde/blob/master/docs/serde-properties.md#ignore-malformed) in der Dokumentation zu. GitHub

**Ion. *<column>*.serialize\$1as**  
Optional  
Standard: Standardtyp für die Spalte.  
Werte: Zeichenfolge mit Amazon-Ion-Typ  
Bestimmt den Amazon-Ion-Datentyp, in dem ein Wert serialisiert wird. Da Amazon-Ion- und Hive-Typen nicht immer über eine direkte Zuordnung verfügen, haben einige Hive-Typen mehrere gültige Datentypen für die Serialisierung. Verwenden Sie diese Eigenschaft, um Daten als nicht standardmäßigen Datentyp zu serialisieren. Weitere Informationen zur Typenzuweisung finden Sie auf der Seite Amazon Ion [Type Mapping](https://github.com/amzn/ion-hive-serde/blob/master/docs/type-mapping.md) unter GitHub.  
Standardmäßig werden binäre Hive-Spalten als Amazon-Ion-Blobs serialisiert, sie können aber auch als [Amazon-Ion-Clob](https://amzn.github.io/ion-docs/docs/stringclob.html#ion-clob) (Character Large Object) serialisiert werden. Im folgenden Beispiel wird die Spalte `example_hive_binary_column` als Clob serialisiert.  

```
'ion.example_hive_binary_column.serialize_as' = 'clob'       
```