Simplistic CLI tool for RDBMS and Hadoop transfers
February 19, 2018

Simplistic CLI tool for RDBMS and Hadoop transfers

Jordan Moore | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with Apache Sqoop

Sqoop is being used to offload relational databases into Hadoop HDFS, Hive, or HBase. From there, big data analysis processes can be run, then Sqoop is used to reload different tables in the source database for relational queries by external systems such as web applications.

Sqoop helps bridge the gap between traditional RDBMS systems and the Hadoop ecosystem.
  • Provides generalized JDBC extensions to migrate data between most database systems
  • Generates Java classes upon reading database records for use in other code utilizing Hadoop's client libraries
  • Allows for both import and export features
  • Sqoop2 development seems to have stalled. I have set it up outside of a Cloudera CDH installation, and I actually prefer it's "Sqoop Server" model better than just the CLI client version that is Sqoop1. This works especially well in a microservices environment, where there would be only one place to maintain the JDBC drivers to use for Sqoop.
  • When combined with Cloudera's HUE, it can enable non-technical users to easily import relational data into Hadoop.
  • Being able to manipulate large datasets in Hadoop, and them load them into a type of "materialized view" in an external database system has yielded great insights into the Hadoop datalake without continuously running large batch jobs.
  • Sqoop isn't very user-friendly for those uncomfortable with a CLI.
  • Sqoop comes preinstalled on the major Hadoop vendor distributions as the recommended product to import data from relational databases. The ability to extend it with additional JDBC drivers makes it very flexible for the environment it is installed within.
  • Spark also has a useful JDBC reader, and can manipulate data in more ways than Sqoop, and also upload to many other systems than just Hadoop.
  • Kafka Connect JDBC is more for streaming database updates using tools such as Oracle GoldenGate or Debezium.
  • Streamsets and Apache NiFi both provide a more "flow based programming" approach to graphically laying out connectors between various systems, including JDBC and Hadoop.
Sqoop is great for sending data between a JDBC compliant database and a Hadoop environment. Sqoop is built for those who need a few simple CLI options to import a selection of database tables into Hadoop, do large dataset analysis that could not commonly be done with that database system due to resource constraints, then export the results back into that database (or another). Sqoop falls short when there needs to be some extra, customized processing between database extract, and Hadoop loading, in which case Apache Spark's JDBC utilities might be preferred.