すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Sqoop ユーザーガイド

最終更新日:Mar 26, 2026

Apache Sqoop は、Apache Hadoop とリレーショナルデータベースなどの構造化データセットとの間でバルクデータを転送します。これを使用して、EMR クラスター上の MySQL、Hadoop 分散ファイルシステム (HDFS)、Hive、Object Storage Service (OSS) の間でデータを移動します。

すべてのコマンドは、ご利用のクラスターのマスターノードで実行してください。

サポートされるシナリオ

MySQL から HDFS へのデータインポート

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> \
  --table <tablename> --target-dir <hdfs-dir> \
  --split-by <split-column> \
  --check-column <col> --incremental <mode> --last-value <value>
パラメーター必須説明
dburi必須データベースアクセス URL。例: jdbc:mysql://192.168..:3306/
dbname必須データベース名。
username必須データベースにログインするためのユーザー名。
password必須データベースにログインするためのパスワード。
tablename必須MySQL テーブル名。
hdfs-dir必須データを書き込む HDFS ディレクトリ。例: /user/hive/result
split-column任意並列タスクを分割するために使用される列。デフォルトはプライマリキー列です。
col任意増分インポートの対象行を識別するために使用される列。
mode任意増分インポートモード。有効な値: appendlastmodified
value任意前回の増分インポートからの最大列値。

すべてのパラメーターリファレンスについては、Sqoop ユーザーガイドの「構文」をご参照ください。

HDFS から MySQL へのデータインポート

このコマンドを実行する前に、HDFS のデータ構造と一致するスキーマを持つ MySQL テーブルを作成してください。

sqoop export --connect <dburi>/<dbname> --username <username> --password <password> \
  --table <tablename> --export-dir <hdfs-dir>
パラメーター必須説明
dburi必須データベースアクセス URL。例: jdbc:mysql://192.168..:3306/
dbname必須データベース名。
username必須データベースにログインするためのユーザー名。
password必須データベースにログインするためのパスワード。
tablename必須MySQL テーブル名。
hdfs-dir必須HDFS ソースディレクトリ。例: /user/hive/result

すべてのパラメーターリファレンスについては、Sqoop ユーザーガイドの「構文」をご参照ください。

Hive から MySQL へのデータインポート

Hive テーブルは HDFS にファイルとして保存されます。Hive テーブルを MySQL にエクスポートするには、「HDFS から MySQL へのデータインポート」と同じ sqoop export コマンドを使用し、Hive テーブルの HDFS ディレクトリを --export-dir として指定します。

MySQL から Hive へのデータインポート

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> \
  --table <tablename> \
  --check-column <col> --incremental <mode> --last-value <value> \
  --fields-terminated-by "\t" --lines-terminated-by "\n" \
  --hive-import --target-dir <hdfs-dir> --hive-table <hive-tablename>
パラメーター必須説明
dburi必須データベースアクセス URL。例: jdbc:mysql://192.168..:3306/
dbname必須データベース名。
username必須データベースにログインするためのユーザー名。
password必須データベースにログインするためのパスワード。
tablename必須MySQL テーブル名。
hdfs-dir必須中間 HDFS ステージングディレクトリ。例: /user/hive/result
hive-tablename必須ターゲット Hive テーブル名。
col任意増分インポートの対象行を識別するために使用される列。
mode任意増分インポートモード。有効な値: appendlastmodified
value任意前回の増分インポートからの最大列値。

すべてのパラメーターリファレンスについては、Sqoop ユーザーガイドの「構文」をご参照ください。

MySQL から OSS へのデータインポート

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> \
  --table <tablename> --target-dir <oss-dir> --temporary-rootdir <oss-tmpdir> \
  --check-column <col> --incremental <mode> --last-value <value>
パラメーター必須説明
dburi必須データベースアクセス URL。例:jdbc:mysql://192.168..:3306/
dbname必須データベース名
username必須データベースにログインするためのユーザー名
password必須データベースにログインするためのパスワード
tablename必須MySQL テーブル名
oss-dir必須OSS の宛先ディレクトリ。例:oss://<AccessKeyId>:<AccessKeySecret>@<BucketName>.oss-cn-hangzhou-internal.aliyuncs.com/result
oss-tmpdirmode=appendOSS の一時ディレクトリ。modeappend の場合、Sqoop はまずこのディレクトリにデータを書き込み、その後、ファイルを宛先にリネームします。宛先ディレクトリが HDFS にすでに存在する場合、Sqoop はデータをインポートも上書きもしません。
colオプション増分インポートで行を識別するために使用される列
modeオプション増分インポートモード。有効な値:appendlastmodified
valueオプション前回の増分インポートからの列の最大値

すべてのパラメーターリファレンスについては、Sqoop ユーザーガイドの「構文」をご参照ください。

OSS から MySQL へのデータインポート

このコマンドを実行する前に、OSS のデータ構造と一致するスキーマを持つ MySQL テーブルを作成してください。

sqoop export --connect <dburi>/<dbname> --username <username> --password <password> \
  --table <tablename> --export-dir <oss-dir>
パラメーター必須説明
dburi必須データベースアクセス URL。例: jdbc:mysql://192.168..:3306/
dbname必須データベース名。
username必須データベースにログインするためのユーザー名。
password必須データベースにログインするためのパスワード。
tablename必須MySQL テーブル名。
oss-dir必須OSS ソースディレクトリ。例: oss://<AccessKeyId>:<AccessKeySecret>@<BucketName>.oss-cn-hangzhou-internal.aliyuncs.com/result

すべてのパラメーターリファレンスについては、Sqoop ユーザーガイドの「構文」をご参照ください。

SQL ステートメントを使用したデータインポート

--query を使用して、テーブル全体をインポートする代わりに、カスタム SQL ステートメントで行をフィルターします。

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> \
  --query <query-sql> --split-by <sp-column> \
  --hive-import --hive-table <hive-tablename> --target-dir <hdfs-dir>
パラメーター必須説明
dburi必須データベースアクセス URL。例: jdbc:mysql://192.168..:3306/
dbname必須データベース名。
username必須データベースにログインするためのユーザー名。
password必須データベースにログインするためのパスワード。
query-sql必須インポートするデータを選択するための SQL ステートメント。$CONDITIONS を含める必要があります。例: SELECT * FROM profile WHERE id>1 AND \$CONDITIONS
sp-column必須並列タスクを分割するために使用される列。通常は MySQL テーブルのプライマリキーです。
hdfs-dir必須中間 HDFS ステージングディレクトリ。例: /user/hive/result
hive-tablename必須ターゲット Hive テーブル名。

すべてのパラメーターリファレンスについては、Sqoop ユーザーガイドの「構文」をご参照ください。