Sqoop - Codegen
В этой главе описывается важность инструмента «кодогенерация». С точки зрения объектно-ориентированного приложения каждая таблица базы данных имеет один класс DAO, который содержит методы получения и установки для инициализации объектов. Этот инструмент (-codegen) автоматически генерирует класс DAO.
Он генерирует класс DAO в Java на основе структуры схемы таблицы. Определение Java создается как часть процесса импорта. Основное использование этого инструмента - проверить, не потеряла ли Java код Java. В этом случае будет создана новая версия Java с разделителем по умолчанию между полями.
Синтаксис
Ниже приведен синтаксис команды создания кода Sqoop.
$ sqoop codegen (generic-args) (codegen-args)
$ sqoop-codegen (generic-args) (codegen-args)
пример
Давайте рассмотрим пример, который генерирует код Java для emp стол в userdb база данных.
Следующая команда используется для выполнения данного примера.
$ sqoop codegen \
--connect jdbc:mysql://localhost/userdb \
--username root \
--table emp
Если команда выполняется успешно, на терминале будет произведен следующий вывод.
14/12/23 02:34:40 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5
14/12/23 02:34:41 INFO tool.CodeGenTool: Beginning code generation
……………….
14/12/23 02:34:42 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /usr/local/hadoop
Note: /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.java uses or
overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
14/12/23 02:34:47 INFO orm.CompilationManager: Writing jar file:
/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.jar
Проверка
Давайте посмотрим на результат. Путь, выделенный жирным шрифтом, - это место, где Java-кодempтаблица генерирует и сохраняет. Давайте проверим файлы в этом месте, используя следующие команды.
$ cd /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/
$ ls
emp.class
emp.jar
emp.java
Если вы хотите глубже проверить, сравните emp стол в userdb база данных и emp.java в следующем каталоге
/ tmp / sqoop-hadoop / compile / 9a300a1f94899df4a9b10f9935ed9f91 /.