HCatalog - Buat Tabel
Bab ini menjelaskan cara membuat tabel dan cara memasukkan data ke dalamnya. Konvensi membuat tabel di HCatalog sangat mirip dengan membuat tabel menggunakan Hive.
Buat Pernyataan Tabel
Buat Tabel adalah pernyataan yang digunakan untuk membuat tabel di metastore sarang menggunakan HCatalog. Sintaks dan contohnya adalah sebagai berikut -
Sintaksis
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[ROW FORMAT row_format]
[STORED AS file_format]
Contoh
Mari kita asumsikan Anda perlu membuat tabel bernama employee menggunakan CREATE TABLEpernyataan. Tabel berikut mencantumkan bidang dan tipe datanya diemployee tabel -
Sr Tidak | Nama Bidang | Tipe data |
---|---|---|
1 | Idul Fitri | int |
2 | Nama | Tali |
3 | Gaji | Mengapung |
4 | Penunjukan | tali |
Data berikut mendefinisikan bidang yang didukung seperti Comment, Bidang berformat baris seperti Field terminator, Lines terminator, dan Stored File type.
COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE
Kueri berikut membuat tabel bernama employee menggunakan data di atas.
./hcat –e "CREATE TABLE IF NOT EXISTS employee ( eid int, name String,
salary String, destination String) \
COMMENT 'Employee details' \
ROW FORMAT DELIMITED \
FIELDS TERMINATED BY ‘\t’ \
LINES TERMINATED BY ‘\n’ \
STORED AS TEXTFILE;"
Jika Anda menambahkan opsi IF NOT EXISTS, HCatalog mengabaikan pernyataan jika tabel sudah ada.
Pada pembuatan tabel yang berhasil, Anda bisa melihat respons berikut -
OK
Time taken: 5.905 seconds
Muat Pernyataan Data
Umumnya, setelah membuat tabel di SQL, kita dapat memasukkan data menggunakan pernyataan Sisipkan. Namun dalam HCatalog, kami memasukkan data menggunakan pernyataan LOAD DATA.
Saat memasukkan data ke dalam HCatalog, lebih baik menggunakan LOAD DATA untuk menyimpan catatan massal. Ada dua cara untuk memuat data: satu darilocal file system dan kedua dari Hadoop file system.
Sintaksis
Sintaks untuk LOAD DATA adalah sebagai berikut -
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
- LOKAL adalah pengenal untuk menentukan jalur lokal. Ini opsional.
- OVERWRITE adalah opsional untuk menimpa data di tabel.
- PARTISI adalah opsional.
Contoh
Kami akan memasukkan data berikut ke dalam tabel. Ini adalah file teks bernamasample.txt di /home/user direktori.
1201 Gopal 45000 Technical manager
1202 Manisha 45000 Proof reader
1203 Masthanvali 40000 Technical writer
1204 Kiran 40000 Hr Admin
1205 Kranthi 30000 Op Admin
Kueri berikut memuat teks yang diberikan ke dalam tabel.
./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"
Saat unduhan berhasil, Anda bisa melihat tanggapan berikut -
OK
Time taken: 15.905 seconds