2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Hive unterstützt mehrere Datentypen, die in zwei Kategorien unterteilt sind: primitive Datentypen und komplexe Datentypen. Die folgenden Datentypen werden von Hive unterstützt:
1. Ganzzahltyp:
winziger Wert: 1-Byte-Ganzzahl mit Vorzeichen
kleine Ganzzahl: 2-Byte-Ganzzahl mit Vorzeichen
int: 4-Byte-Ganzzahl mit Vorzeichen
große Ganzzahl: 8-Byte-Ganzzahl mit Vorzeichen
schweben: 4-Byte-Gleitkommazahl mit einfacher Genauigkeit
doppelt: 8-Byte-Gleitkommazahl mit doppelter Genauigkeit
Dezimal: Es können hochpräziser Zahlentyp, Genauigkeit und Skalierung angegeben werden, z. B. dezimal(10,2)
Byte: Eine der grundlegendsten Speichereinheiten in Computern. 1 Byte belegt 8 Bit, Datenbereich: negativer Bereich: -128 bis -1, positiver Bereich: 0 bis 127
2. String-Typ:
Zeichenfolge: Zeichenfolge variabler Länge
varchar: Eine Zeichenfolge variabler Länge mit einer maximalen Längenbeschränkung, z. B. varchar(255)
verkohlen: String mit fester Länge, z. B. char(10)
3. Datums-/Uhrzeittyp:
Zeitstempel: Zeitstempel mit Datum und Uhrzeit, auf Nanosekunden genau
Datum: Enthält nur den Datumsteil, nicht den Zeitteil
Intervall: Zeitintervall, das zur Darstellung der Differenz zwischen zwei Datums- oder Uhrzeitangaben verwendet wird
4.Boolescher Typ:
Boolescher Wert: Boolescher Wert, der Wert ist wahr oder falsch
5. Binärtyp:
binär: Byte-Array beliebiger Länge
Anordnung<T> : Eine geordnete Liste, die mehrere Elemente desselben Typs enthält, z. B. ein Array<int>
Karte<K, V> : Eine ungeordnete Sammlung von Schlüssel-Wert-Paaren, wobei Schlüssel und Wert ein beliebiger Datentyp sein können, beispielsweise eine Karte<string, int>
Struktur<col1: type1, col2: type2, ...> : Datensätze, die mehrere Felder enthalten. Jedes Feld kann einen anderen Datentyp haben, z. B.Struktur<name: string, age: int>
- CREATE TABLE example_table (
- tinyint_col tinyint,
- smallint_col smallint,
- int_col int,
- bigint_col bigint,
- float_col float,
- double_col double,
- decimal_col decimal(10, 2),
- string_col string,
- varchar_col varchar(255),
- char_col char(10),
- timestamp_col timestamp,
- date_col date,
- boolean_col boolean,
- binary_col binary,
- array_col array<int>,
- map_col map<string, int>,
- struct_col struct<name: string, age: int>,
- union_col uniontype<int, string>
- );
Die Speicherformate von Hive sind in zwei Kategorien unterteilt:
Eine Art reine Textdatei: Textdatei, die nicht komprimiert ist und auch das Standardspeicherformat von Hive ist.
Eine Kategorie ist die Speicherung binärer Dateien:
Sequenzdatei: wird komprimiert und Daten können nicht mit der Lademethode geladen werden.
orcfile: wird komprimiert und Daten können nicht mit der Lademethode geladen werden.
Parkett: wird komprimiert und Daten können nicht mit der Lademethode geladen werden.
rcfile: Es kann Daten mit der Lademethode komprimieren und nicht laden. Es handelt sich um eine niedrige Konfiguration von orcfile.
Die Speicherformate Textdatei und Sequenzdatei basieren auf der Zeilenspeicherung; Orc und Parkett basieren auf der Spaltenspeicherung, und rcfile ist eine gemischte Zeilen- und Spaltenspeicherung.
Beim Erstellen einer Tabelle können Sie mit „gespeichert als Parkett“ das Speicherformat der Tabelle angeben, zum Beispiel:
- create table if not exists stocks_parquet (
- track_time string,
- url string,
- session_id string,
- referer string,
- ip string,
- end_user_id string,
- city_id string
- )
- stored as parquet;
Ändern Sie das Standardspeicherformat von Hive:
- <property>
- <name>hive.default.fileformat</name>
- <value>TextFile</value>
- <description>
- Expects one of [textfile, sequencefile, rcfile, orc].
- Default file format for CREATE TABLE statement. Users can explicitly override it by CREATE TABLE ... STORED AS [FORMAT]
- </description>
- </property>
- 也可以使用set方式修改:
- set hive.default.fileformat=TextFile