Sqoop-codegen

提供:Dev Guides
移動先:案内検索

Sqoop-コード生成

この章では、「codegen」ツールの重要性について説明します。 オブジェクト指向アプリケーションの観点から、すべてのデータベーステーブルには、オブジェクトを初期化する「getter」および「setter」メソッドを含む1つのDAOクラスがあります。 このツール(-codegen)は、DAOクラスを自動的に生成します。

テーブルスキーマ構造に基づいて、JavaでDAOクラスを生成します。 Java定義は、インポートプロセスの一部としてインスタンス化されます。 このツールの主な使用法は、JavaがJavaコードを失ったかどうかを確認することです。 その場合、フィールド間のデフォルトの区切り文字を使用して新しいバージョンのJavaが作成されます。

構文

以下は、Sqoop codegenコマンドの構文です。

$ sqoop codegen (generic-args) (codegen-args)
$ sqoop-codegen (generic-args) (codegen-args)

*userdb* データベースの *emp* テーブルのJavaコードを生成する例を見てみましょう。

次のコマンドを使用して、指定された例を実行します。

$ 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

検証

出力を見てみましょう。 太字のパスは、 emp テーブルのJavaコードが生成および保存する場所です。 次のコマンドを使用して、その場所のファイルを確認します。

$ cd/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/
$ ls
emp.class
emp.jar
emp.java

詳細に検証する場合は、 userdb データベースの emp テーブルと次のディレクトリの emp.java を比較します

/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/。