Κοινή χρήση τεχνολογίας

Σύνοψη τύπων δεδομένων και μορφών αποθήκευσης στο Hive

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1.Τύπος δεδομένων

Το Hive υποστηρίζει πολλούς τύπους δεδομένων, χωρισμένους σε δύο κατηγορίες: πρωτόγονους τύπους δεδομένων και σύνθετους τύπους δεδομένων. Οι παρακάτω είναι οι τύποι δεδομένων που υποστηρίζονται από το Hive:

Πρωτόγονοι τύποι δεδομένων:

1. Ακέραιος τύπος:

                μικροσκοπικό: Ακέραιος υπογεγραμμένος 1 byte
               μικρός: Υπογεγραμμένος ακέραιος αριθμός 2 byte
               int: Υπογεγραμμένος ακέραιος αριθμός 4 byte
                bigint: Υπογεγραμμένος ακέραιος αριθμός 8 byte
               φλοτέρ: Αριθμός κινητής υποδιαστολής μονής ακρίβειας 4 byte
               διπλό: Αριθμός κινητής υποδιαστολής διπλής ακρίβειας 8 byte
                δεκαδικός: Μπορούν να καθοριστούν τύπος αριθμού υψηλής ακρίβειας, ακρίβεια και κλίμακα, όπως δεκαδικός (10,2)

Byte: Μία από τις πιο βασικές μονάδες αποθήκευσης σε υπολογιστές, 1 byte καταλαμβάνει 8 bit, εύρος δεδομένων: αρνητικό εύρος: -128 έως -1, θετικό εύρος: 0 έως 127

2. Τύπος συμβολοσειράς:

                σειρά: συμβολοσειρά μεταβλητού μήκους
               varchar: Μια συμβολοσειρά μεταβλητού μήκους με μέγιστο όριο μήκους, όπως varchar(255)
               απανθρακώνω: Συμβολοσειρά σταθερού μήκους, όπως char(10)

3. Τύπος ημερομηνίας/ώρας:

                χρονική σήμανση: Χρονική σήμανση που περιέχει ημερομηνία και ώρα, με ακρίβεια νανοδευτερόλεπτα
               ημερομηνία: Περιέχει μόνο το τμήμα ημερομηνίας, όχι το τμήμα ώρας
                διάστημα: Χρονικό διάστημα, που χρησιμοποιείται για να αναπαραστήσει τη διαφορά μεταξύ δύο ημερομηνιών ή ωρών

4.Τύπος Boolean:

                boolean: Boolean τιμή, η τιμή είναι true ή false

5. Δυαδικός τύπος:

                δυάδικος: πίνακας byte αυθαίρετου μήκους

Σύνθετοι τύποι δεδομένων:
1.Τύπος πίνακα

        πίνακας<T> : Μια ταξινομημένη λίστα που περιέχει πολλά στοιχεία του ίδιου τύπου, όπως πίνακας<int>

2. Τύπος χαρτογράφησης

    χάρτης<K, V> : Μια μη διατεταγμένη συλλογή ζευγών κλειδιών-τιμών, όπου το κλειδί και η τιμή μπορεί να είναι οποιοσδήποτε τύπος δεδομένων, όπως χάρτης<string, int>


    3. Τύπος δομής

         struct<col1: type1, col2: type2, ...> : Εγγραφές που περιέχουν πολλά πεδία, κάθε πεδίο μπορεί να είναι διαφορετικού τύπου δεδομένων, π.χ.struct<name: string, age: int>

  1. CREATE TABLE example_table (
  2. tinyint_col tinyint,
  3. smallint_col smallint,
  4. int_col int,
  5. bigint_col bigint,
  6. float_col float,
  7. double_col double,
  8. decimal_col decimal(10, 2),
  9. string_col string,
  10. varchar_col varchar(255),
  11. char_col char(10),
  12. timestamp_col timestamp,
  13. date_col date,
  14. boolean_col boolean,
  15. binary_col binary,
  16. array_col array<int>,
  17. map_col map<string, int>,
  18. struct_col struct<name: string, age: int>,
  19. union_col uniontype<int, string>
  20. );

2.Μορφή αποθήκευσης αρχείων Hive

Οι μορφές αποθήκευσης του hive χωρίζονται σε δύο κατηγορίες:

Ένας τύπος αρχείου απλού κειμένου: αρχείο κειμένου, το οποίο δεν είναι συμπιεσμένο και είναι επίσης η προεπιλεγμένη μορφή αποθήκευσης του hive.

Μια κατηγορία είναι η αποθήκευση δυαδικών αρχείων:

sequencefile: θα συμπιεστεί και τα δεδομένα δεν μπορούν να φορτωθούν χρησιμοποιώντας τη μέθοδο φόρτωσης.

orcfile: θα συμπιεστεί και τα δεδομένα δεν μπορούν να φορτωθούν χρησιμοποιώντας τη μέθοδο φόρτωσης.

παρκέ: θα συμπιεστεί και τα δεδομένα δεν μπορούν να φορτωθούν χρησιμοποιώντας τη μέθοδο φόρτωσης.

rcfile: Μπορεί να συμπιέσει και δεν μπορεί να φορτώσει δεδομένα χρησιμοποιώντας τη μέθοδο φόρτωσης Είναι μια χαμηλή διαμόρφωση του αρχείου orc.

Οι μορφές αποθήκευσης του αρχείου κειμένου και του αρχείου ακολουθίας βασίζονται στην αποθήκευση σειρών και το παρκέ βασίζονται σε αποθήκευση στηλών και το αρχείο rc είναι μια μικτή αποθήκευση σειρών και στηλών.

Κατά τη δημιουργία ενός πίνακα, μπορείτε να χρησιμοποιήσετε το αποθηκευμένο ως παρκέ για να καθορίσετε τη μορφή αποθήκευσης του πίνακα, για παράδειγμα:

  1. create table if not exists stocks_parquet (
  2. track_time string,
  3. url string,
  4. session_id string,
  5. referer string,
  6. ip string,
  7. end_user_id string,
  8. city_id string
  9. )
  10. stored as parquet;

Τροποποίηση της προεπιλεγμένης μορφής αποθήκευσης του hive:

  1. <property>
  2. <name>hive.default.fileformat</name>
  3. <value>TextFile</value>
  4. <description>
  5. Expects one of [textfile, sequencefile, rcfile, orc].
  6. Default file format for CREATE TABLE statement. Users can explicitly override it by CREATE TABLE ... STORED AS [FORMAT]
  7. </description>
  8. </property>
  9. 也可以使用set方式修改:
  10. set hive.default.fileformat=TextFile