de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Y0gesh Gupta
Y0gesh Gupta
Question

Sarang menyisipkan query seperti SQL

Saya baru ke sarang, dan ingin tahu apakah ada pula untuk menyisipkan data ke dalam sarang tabel seperti yang kami lakukan di SQL. Saya ingin memasukkan data saya ke dalam sarang seperti

INSERT INTO tablename VALUES (value1,value2..)

Saya telah membaca bahwa anda dapat memuat data dari file ke sarang meja atau anda dapat mengimpor data dari satu tabel ke sarang meja tapi apakah ada cara untuk menambahkan data di SQL?

55 2013-07-02T12:20:39+00:00 14
Pemrograman
sql
hadoop
hive
hiveql
Solution / Answer
 mattinbits
mattinbits
27 Juli 2015 в 2:55
2015-07-27T14:55:27+00:00
Lebih
Sumber
Sunting
#19808996

Beberapa jawaban berikut ini adalah out of date seperti Sarang 0.14

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-InsertingvaluesintotablesfromSQL

Sekarang mungkin untuk menyisipkan menggunakan sintaks seperti:

CREATE TABLE students (name VARCHAR(64), age INT, gpa DECIMAL(3, 2));

INSERT INTO TABLE students
  VALUES ('fred flintstone', 35, 1.28), ('barney rubble', 32, 2.32);
103
0
 unique2
unique2
20 September 2013 в 8:55
2013-09-20T08:55:44+00:00
Lebih
Sumber
Sunting
#19808992

Anda dapat menggunakan tabel fungsi pembangkit stack untuk menyisipkan nilai literal ke dalam tabel.

Pertama, anda perlu dummy tabel yang hanya berisi satu baris. Anda dapat menghasilkan dengan bantuan batas.

CREATE TABLE one AS
SELECT 1 AS one
FROM any_table_in_your_database
LIMIT 1;

Sekarang anda dapat membuat tabel baru dengan nilai literal seperti ini:

CREATE TABLE my_table AS
SELECT stack(3
  , "row1", 1
  , "row2", 2
  , "row3", 3
) AS (column1, column2)
FROM one
;

Argumen pertama dari stack adalah jumlah baris anda menghasilkan.

Anda juga dapat menambahkan nilai ke tabel yang ada:

INSERT INTO TABLE my_table
SELECT stack(2
  , "row4", 1
  , "row5", 2
) AS (column1, column2)
FROM one
;
18
0
 Habdank
Habdank
4 Maret 2015 в 3:34
2015-03-04T15:34:04+00:00
Lebih
Sumber
Sunting
#19808995

Sedikit lebih baik dari versi unique2 saran di bawah ini:

insert overwrite table target_table
select * from 
(
select stack(
    3,                 # generating new table with 3 records
    'John', 80,        # record_1
    'Bill', 61         # record_2
    'Martha', 101      # record_3
    ) 
) s;

Yang tidak memerlukan hack dengan menggunakan aplikasi yang sudah keluar dari meja.

16
0
 Sanjiv
Sanjiv
11 November 2014 в 7:09
2014-11-11T07:09:23+00:00
Lebih
Sumber
Sunting
#19808994

Anda dapat menggunakan di bawah ini pendekatan. Dengan ini, Anda don't perlu membuat tabel temp ATAU txt/csv file untuk memilih dan beban masing-masing.

INSERT INTO TABLE tablename SELECT value1,value2 FROM tempTable_with_atleast_one_records LIMIT 1.

Dimana tempTable_with_atleast_one_records adalah setiap meja dengan minimal satu record.

Tetapi masalah dengan pendekatan ini adalah bahwa Jika anda memiliki MENYISIPKAN pernyataan yang menyisipkan beberapa baris seperti di bawah satu.

INSERT INTO yourTable values (1 , 'value1') , (2 , 'value2') , (3 , 'value3') ;

Kemudian, Anda perlu untuk memisahkan MENYISIPKAN sarang pernyataan untuk masing-masing baris. Lihat di bawah ini.

INSERT INTO TABLE yourTable SELECT 1 , 'value1' FROM tempTable_with_atleast_one_records LIMIT 1;
INSERT INTO TABLE yourTable SELECT 2 , 'value2' FROM tempTable_with_atleast_one_records LIMIT 1;
INSERT INTO TABLE yourTable SELECT 3 , 'value3' FROM tempTable_with_atleast_one_records LIMIT 1;
7
0
 Tariq
Tariq
3 Juli 2013 в 2:52
2013-07-03T14:52:52+00:00
Lebih
Sumber
Sunting
#19808991

Anda pasti bisa menambahkan data ke tabel yang ada. (Tapi hal ini sebenarnya tidak append di HDFS tingkat). It's hanya bahwa setiap kali anda melakukan LOAD atau operasi INSERT pada Sarang yang ada meja tanpa MENIMPA klausul baru data akan dimasukkan tanpa mengganti data lama. File baru akan dibuat untuk ini baru dimasukkan data dalam direktori yang sesuai dengan tabel tersebut. Misalnya :

Saya memiliki sebuah file yang bernama demo.txt yang memiliki 2 baris :

ABC
XYZ

Membuat tabel dan memuat file ini ke dalamnya

hive> create table demo(foo string);
hive> load data inpath '/demo.txt' into table demo;

Sekarang,jika saya melakukan SELECT pada tabel ini itu'll berikan :

hive> select * from demo;                        
OK    
ABC    
XYZ

Misalkan, saya punya satu file bernama demo2.txt yang memiliki :

PQR

Dan saya melakukan LOAD lagi pada tabel ini tanpa menggunakan menimpa,

hive> load data inpath '/demo2.txt' into table demo;

Sekarang, jika saya PILIH sekarang, it'll give me,

hive> select * from demo;                       
OK
ABC
XYZ
PQR

HTH

6
0
Lukas Vermeer
Lukas Vermeer
2 Juli 2013 в 12:48
2013-07-02T12:48:20+00:00
Lebih
Sumber
Sunting
#19808988

No. Ini INSERT INTO namatabel VALUES (x,y,z) sintaks saat ini tidak didukung di Sarang.

4
0
Ramesh  babu M
Ramesh babu M
12 Juli 2017 в 9:40
2017-07-12T09:40:27+00:00
Lebih
Sumber
Sunting
#19808997

Untuk menyisipkan seluruh data table2 di table1. Berikut adalah query:

INSERT INTO TABLE table1 SELECT * FROM table2; 
 5377037
5377037
Jawaban edit 12 Juli 2017 в 1:16
3
0
 user3279425
user3279425
4 Maret 2014 в 11:07
2014-03-04T11:07:35+00:00
Lebih
Sumber
Sunting
#19808993

Ya, anda dapat menyisipkan tapi tidak mirip dengan SQL.

Di SQL kita dapat menyisipkan baris data tingkat, tapi di sini anda dapat menyisipkan oleh bidang (kolom).

Selama ini, anda harus memastikan target tabel dan query harus memiliki datatype sama dan nomor yang sama dari kolom.

misalnya:

CREATE TABLE test(stu_name STRING,stu_id INT,stu_marks INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

INSERT OVERWRITE TABLE test SELECT lang_name, lang_id, lang_legacy_id FROM export_table;
 Mike
Mike
Jawaban edit 4 Maret 2014 в 11:30
3
0
 Don
Don
22 November 2017 в 2:29
2017-11-22T14:29:26+00:00
Lebih
Sumber
Sunting
#19808998

Masukkan perintah berikut untuk memasukkan data ke testlog tersebut table dengan beberapa kondisi:

INSERT INTO TABLE testlog SELECT * FROM table1 WHERE some condition;
 Isma
Isma
Jawaban edit 22 November 2017 в 4:03
2
0
Arijit Banerjee
Arijit Banerjee
3 Juli 2013 в 6:11
2013-07-03T06:11:48+00:00
Lebih
Sumber
Sunting
#19808989

Anda dapat't melakukan insert ke dalam untuk menyisipkan record tunggal. It's tidak didukung oleh Sarang. Anda dapat menempatkan semua rekor baru yang ingin anda masukkan dalam file dan memuat file itu ke temp table di Sarang. Kemudian dengan menggunakan insert menimpa..pilih perintah menyisipkan baris ke partisi baru anda Sarang utama tabel. Kendala di sini adalah tabel utama akan harus pra dipartisi. Jika anda don't menggunakan partisi maka seluruh tabel akan diganti dengan data baru.

1
0
Brijesh Mishra
Brijesh Mishra
10 Juni 2018 в 8:51
2018-06-10T08:51:57+00:00
Lebih
Sumber
Sunting
#19809000

Cara untuk memasukkan data ke dalam sarang tabel: untuk demonstrasi, saya menggunakan nama tabel sebagai table1 dan table2

  1. membuat tabel table2 seperti select * from table1 where 1=1; atau membuat tabel table2 seperti select * from table1;

  2. dengan memasukkan menimpa meja table2 select * from table1; --itu akan memasukkan data dari satu ke yang lain. Catatan: Hal ini akan menyegarkan target.

  3. insert ke tabel table2 select * from table1; --itu akan memasukkan data dari satu ke yang lain. Catatan: Hal ini akan menambahkan ke target.

  4. load data local inpath 'local_path' menimpa ke tabel table1; --itu akan memuat data dari lokal ke dalam tabel target dan juga me-refresh tabel target.

  5. load data inpath 'hdfs_path' menimpa ke tabel table1; --itu akan memuat data dari hdfs lokasi iand juga me-refresh tabel target. atau

create table table2(
    col1 string,
    col2 string,
    col3 string)
    row format delimited fields terminated by ','
    location 'hdfs_location'; 
  1. load data local inpath 'local_path' ke tabel table1; --itu akan memuat data dari lokal dan juga menambahkan ke dalam tabel target.

  2. load data inpath 'hdfs_path' ke tabel table1; --itu akan memuat data dari hdfs lokasi dan juga menambahkan ke dalam tabel target.

  3. insert into table2 values('aa','bb','cc'); --Katakanlah table2 memiliki 3 kolom saja.

  4. Beberapa penyisipan ke sarang meja

1
0
 Binary01
Binary01
3 Juli 2013 в 12:50
2013-07-03T12:50:26+00:00
Lebih
Sumber
Sunting
#19808990

Saya pikir dalam skenario seperti ini, anda harus menggunakan HBASE yang memfasilitasi semacam penyisipan tapi itu tidak memberikan SQL jenis query language. Anda perlu menggunakan Java API dari HBASE seperti menempatkan metode untuk melakukan semacam penyisipan. Selain itu HBASE adalah kolom yang berorientasi no-sql database.

0
0
 Viraj.Hadoop
Viraj.Hadoop
12 Maret 2018 в 7:20
2018-03-12T07:20:51+00:00
Lebih
Sumber
Sunting
#19808999

Ya kita dapat menggunakan Insert query di sarang.

sarang> create table test (id int, string nama);

INSERT : MASUKKAN...nilai-NILAI ini mulai tersedia dalam versi :Sarang 0.14.

sarang> masukkan ke tabel nilai tes (1,'mytest');

Ini akan bekerja untuk menyisipkan. kita harus menggunakan *nilai *** kata kunci.

Catatan: Pengguna tidak dapat memasukkan data ke dalam kompleks datatype kolom (array, peta, struct, union) menggunakan MASUKKAN KE dalam...nilai-NILAI klausa.**

0
0
 Hemant
Hemant
27 Juli 2019 в 8:15
2019-07-27T08:15:51+00:00
Lebih
Sumber
Sunting
#19809001

Anda masih dapat menyisipkan ke dalam kompleks jenis di Sarang - bekerja (id int, rekan-rekan array)

masukkan ke emp (id,rekan-rekan) pilih 11, array('Alex','Jian') dari (pilih '1')

0
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Roxana Elizabeth CASTILLO Avalos
Terdaftar 4 hari yang lalu
2
Hideo Nakagawa
Terdaftar 5 hari yang lalu
3
Sergiy Tytarenko
Terdaftar 6 hari yang lalu
4
shoxrux azadov
Terdaftar 1 minggu yang lalu
5
Koreets Koreytsev
Terdaftar 1 minggu yang lalu
ID
JA
RU
TR
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi