sqoop - Sqoop Import - apache sqoop - sqoop tutorial - sqoop hadoop
What is Import in Sqoop?
- We can import data from a relational database system into HDFS. The input to the import process is a database table.
- Sqoop will read the table row-by-row into HDFS. A by-product of the import process is a generated Java class which can encapsulate one row of the imported table.
- All records are stored as text data in the text files or as binary data in Avro and Sequence files.
Syntax:
- The following syntax is used to import data into HDFS.
Example:
- Let us take an example of three tables named as emp, emp_add, and emp_contact, which are in a database called userdb in a MySQL database server.
- The three tables and their data are as follows.
emp:
id | name | deg | salary | dept |
---|---|---|---|---|
1201 | gopal | manager | 50,000 | TP |
1202 | manisha | Proof reader | 50,000 | TP |
1203 | khalil | php dev | 30,000 | AC |
1204 | prasanth | php dev | 30,000 | AC |
1204 | kranthi | admin | 20,000 | TP |
emp_add:
id | hno | street | city |
---|---|---|---|
1201 | 288A | vgiri | jublee |
1202 | 108I | aoc | sec-bad |
1203 | 144Z | pgutta | hyd |
1204 | 78B | old city | sec-bad |
1205 | 720X | hitec | sec-bad |
emp_contact:
id | phno | |
---|---|---|
1201 | 2356742 | gopal@tp.com |
1202 | 1661663 | manisha@tp.com |
1203 | 8887776 | khalil@ac.com |
1204 | 9988774 | prasanth@ac.com |
1205 | 1231231 | kranthi@tp.com |
Importing a Table:
- Sqoop tool ‘import’ is used to import table data from the table to the Hadoop file system as a text file or a binary file.
- The following command is used to import the emp table from MySQL database server to HDFS.
If it is executed successfully, then you get the following output.
To verify the imported data in HDFS, use the following command.
- It shows you the emp table data and fields are separated with comma (,).
Importing into Target Directory:
- We can specify the target directory while importing table data into HDFS using the Sqoop import tool.
- Following is the syntax to specify the target directory as option to the Sqoop import command.
- The following command is used to import emp_add table data into ‘/queryresult’ directory.
- The following command is used to verify the imported data in /queryresult directory form emp_add table.
- It will show you the emp_add table data with comma (,) separated fields.
Import Subset of Table Data:
- We can import a subset of a table using the ‘where’ clause in Sqoop import tool.
- It executes the corresponding SQL query in the respective database server and stores the result in a target directory in HDFS.
- The syntax for where clause is as follows.
- The following command is used to import a subset of emp_add table data.
- The subset query is to retrieve the employee id and address, who lives in Secunderabad city.
- The following command is used to verify the imported data in /wherequery directory from the emp_add table.
- It will show you the emp_add table data with comma (,) separated fields.
Incremental Import:
- Incremental import is a technique that imports only the newly added rows in a table.
- It is required to add ‘incremental’, ‘check-column’, and ‘last-value’ options to perform the incremental import.
- The following syntax is used for the incremental option in Sqoop import command.
- Let us assume the newly added data into emp table is as follows:
- The following command is used to perform the incremental import in the emptable.
- The following command is used to verify the imported data from emp table to HDFS emp/ directory.
- It shows you the emp table data with comma (,) separated fields.
- The following command is used to see the modified or newly added rows from the emp table.
- It shows you the newly added rows to the emp table with comma (,) separated fields.