Todos os produtos
Search
Central de documentação

E-MapReduce:Sqoop user guide

Última atualização: Jun 27, 2026

O Apache Sqoop transfere grandes volumes de dados entre o Apache Hadoop e conjuntos de dados estruturados, como bancos de dados relacionais. Use essa ferramenta para mover dados entre MySQL, Hadoop Distributed File System (HDFS), Hive e Object Storage Service (OSS) em clusters EMR.

Execute todos os comandos no nó mestre do cluster.

Cenários suportados

Importar dados do MySQL para o 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>

Parâmetro

Obrigatório

Descrição

dburi

Sim

URL de acesso ao banco de dados. Exemplo: jdbc:mysql://192.168..:3306/

dbname

Sim

Nome do banco de dados

username

Sim

Nome de usuário para autenticação no banco de dados

password

Sim

Senha para autenticação no banco de dados

tablename

Sim

Nome da tabela MySQL

hdfs-dir

Sim

Diretório HDFS de destino para gravação dos dados. Exemplo: /user/hive/result

split-column

Não

Coluna usada para dividir tarefas paralelas. O padrão é a coluna de chave primária

col

Não

Coluna usada para identificar linhas na importação incremental

mode

Não

Modo de importação incremental. Valores válidos: append e lastmodified

value

Não

Valor máximo da coluna obtido na importação incremental anterior

Para consultar a referência completa de parâmetros, veja a seção Syntax no Guia do Usuário do Sqoop.

Importar dados do HDFS para o MySQL

Antes de executar este comando, crie uma tabela no MySQL cujo esquema corresponda à estrutura dos dados no HDFS.

sqoop export --connect <dburi>/<dbname> --username <username> --password <password> \
  --table <tablename> --export-dir <hdfs-dir>

Parâmetro

Obrigatório

Descrição

dburi

Sim

URL de acesso ao banco de dados. Exemplo: jdbc:mysql://192.168..:3306/

dbname

Sim

Nome do banco de dados

username

Sim

Nome de usuário para autenticação no banco de dados

password

Sim

Senha para autenticação no banco de dados

tablename

Sim

Nome da tabela MySQL

hdfs-dir

Sim

Diretório de origem no HDFS. Exemplo: /user/hive/result

Para consultar a referência completa de parâmetros, veja a seção Syntax no Guia do Usuário do Sqoop.

Importar dados do Hive para o MySQL

As tabelas do Hive são armazenadas como arquivos no HDFS. Para exportar uma tabela do Hive para o MySQL, use o mesmo comando sqoop export descrito em Importar dados do HDFS para o MySQL, especificando o diretório HDFS da tabela Hive no parâmetro --export-dir.

Importar dados do MySQL para o 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>

Parâmetro

Obrigatório

Descrição

dburi

Sim

URL de acesso ao banco de dados. Exemplo: jdbc:mysql://192.168..:3306/

dbname

Sim

Nome do banco de dados

username

Sim

Nome de usuário para autenticação no banco de dados

password

Sim

Senha para autenticação no banco de dados

tablename

Sim

Nome da tabela MySQL

hdfs-dir

Sim

Diretório intermediário de preparação (staging) no HDFS. Exemplo: /user/hive/result

hive-tablename

Sim

Nome da tabela Hive de destino

col

Não

Coluna usada para identificar linhas na importação incremental

mode

Não

Modo de importação incremental. Valores válidos: append e lastmodified

value

Não

Valor máximo da coluna obtido na importação incremental anterior

Para consultar a referência completa de parâmetros, veja a seção Syntax no Guia do Usuário do Sqoop.

Importar dados do MySQL para o 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>

Parâmetro

Obrigatório

Descrição

dburi

Sim

URL de acesso ao banco de dados. Exemplo: jdbc:mysql://192.168..:3306/

dbname

Sim

Nome do banco de dados

username

Sim

Nome de usuário para autenticação no banco de dados

password

Sim

Senha para autenticação no banco de dados

tablename

Sim

Nome da tabela MySQL

oss-dir

Sim

Diretório de destino no OSS. Exemplo: oss://<AccessKeyId>:<AccessKeySecret>@<BucketName>.oss-cn-hangzhou-internal.aliyuncs.com/result

oss-tmpdir

Obrigatório se mode=append

Diretório temporário no OSS. Quando o mode é append, o Sqoop grava os dados neste diretório primeiro e depois renomeia os arquivos para o destino. Caso o diretório de destino já exista no HDFS, o Sqoop não importa nem sobrescreve os dados

col

Não

Coluna usada para identificar linhas na importação incremental

mode

Não

Modo de importação incremental. Valores válidos: append e lastmodified

value

Não

Valor máximo da coluna obtido na importação incremental anterior

Para consultar a referência completa de parâmetros, veja a seção Syntax no Guia do Usuário do Sqoop.

Importar dados do OSS para o MySQL

Antes de executar este comando, crie uma tabela no MySQL cujo esquema corresponda à estrutura dos dados no OSS.

sqoop export --connect <dburi>/<dbname> --username <username> --password <password> \
  --table <tablename> --export-dir <oss-dir>

Parâmetro

Obrigatório

Descrição

dburi

Sim

URL de acesso ao banco de dados. Exemplo: jdbc:mysql://192.168..:3306/

dbname

Sim

Nome do banco de dados

username

Sim

Nome de usuário para autenticação no banco de dados

password

Sim

Senha para autenticação no banco de dados

tablename

Sim

Nome da tabela MySQL

oss-dir

Sim

Diretório de origem no OSS. Exemplo: oss://<AccessKeyId>:<AccessKeySecret>@<BucketName>.oss-cn-hangzhou-internal.aliyuncs.com/result

Para consultar a referência completa de parâmetros, veja a seção Syntax no Guia do Usuário do Sqoop.

Usar uma instrução SQL para importar dados

Use o parâmetro --query para filtrar linhas com uma instrução SQL personalizada em vez de importar uma tabela inteira.

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>

Parâmetro

Obrigatório

Descrição

dburi

Sim

URL de acesso ao banco de dados. Exemplo: jdbc:mysql://192.168..:3306/

dbname

Sim

Nome do banco de dados

username

Sim

Nome de usuário para autenticação no banco de dados

password

Sim

Senha para autenticação no banco de dados

query-sql

Sim

Instrução SQL para selecionar os dados a serem importados. Deve incluir $CONDITIONS. Exemplo: SELECT * FROM profile WHERE id>1 AND \$CONDITIONS

sp-column

Sim

Coluna usada para dividir tarefas paralelas. Geralmente é a chave primária da tabela MySQL

hdfs-dir

Sim

Diretório intermediário de preparação (staging) no HDFS. Exemplo: /user/hive/result

hive-tablename

Sim

Nome da tabela Hive de destino

Para consultar a referência completa de parâmetros, veja a seção Syntax no Guia do Usuário do Sqoop.