Sqoop - Dışa aktar

Bu bölümde verilerin HDFS'den RDBMS veritabanına nasıl geri aktarılacağı açıklanmaktadır. Hedef tablo, hedef veritabanında bulunmalıdır. Sqoop'a girdi olarak verilen dosyalar, tablodaki satırlar olarak adlandırılan kayıtları içerir. Bunlar okunur ve bir kayıt kümesine ayrıştırılır ve kullanıcı tanımlı sınırlayıcı ile sınırlandırılır.

Varsayılan işlem, INSERT deyimini kullanarak girdi dosyalarındaki tüm kayıtları veritabanı tablosuna eklemektir. Güncelleme modunda, Sqoop var olan kaydı veritabanında değiştiren UPDATE deyimini oluşturur.

Sözdizimi

Dışa aktarma komutunun sözdizimi aşağıdadır.

$ sqoop export (generic-args) (export-args) 
$ sqoop-export (generic-args) (export-args)

Misal

HDFS'deki dosyadaki çalışan verilerinin bir örneğini ele alalım. Çalışan verileri şurada mevcuttur:emp_datadosya HDFS'de 'emp /' dizininde. emp_data Şöyleki.

1201, gopal,     manager, 50000, TP
1202, manisha,   preader, 50000, TP
1203, kalil,     php dev, 30000, AC
1204, prasanth,  php dev, 30000, AC
1205, kranthi,   admin,   20000, TP
1206, satish p,  grp des, 20000, GR

Dışa aktarılacak tablonun manuel olarak oluşturulması ve dışa aktarılması gereken veritabanında bulunması zorunludur.

Aşağıdaki sorgu mysql komut satırında 'çalışan' tablosunu oluşturmak için kullanılır.

$ mysql
mysql> USE db;
mysql> CREATE TABLE employee ( 
   id INT NOT NULL PRIMARY KEY, 
   name VARCHAR(20), 
   deg VARCHAR(20),
   salary INT,
   dept VARCHAR(10));

Aşağıdaki komut, tablo verilerini dışa aktarmak için kullanılır ( emp_data HDFS dosyası) Mysql veritabanı sunucusunun db veritabanındaki çalışan tablosuna.

$ sqoop export \
--connect jdbc:mysql://localhost/db \
--username root \
--table employee \ 
--export-dir /emp/emp_data

Aşağıdaki komut mysql komut satırındaki tabloyu doğrulamak için kullanılır.

mysql>select * from employee;

Verilen veriler başarıyla saklanırsa, verilen çalışan verilerinin aşağıdaki tablosunu bulabilirsiniz.

+------+--------------+-------------+-------------------+--------+
| Id   | Name         | Designation | Salary            | Dept   |
+------+--------------+-------------+-------------------+--------+
| 1201 | gopal        | manager     | 50000             | TP     |
| 1202 | manisha      | preader     | 50000             | TP     |
| 1203 | kalil        | php dev     | 30000             | AC     |
| 1204 | prasanth     | php dev     | 30000             | AC     |
| 1205 | kranthi      | admin       | 20000             | TP     |
| 1206 | satish p     | grp des     | 20000             | GR     |
+------+--------------+-------------+-------------------+--------+