私はSqoopを使ってMySQLテーブルをHDFSにインポートしています。これを行うために、私は自由形式のクエリインポートを使用します。定数境界クエリを設定する
--query "SELECT $query_select FROM $table where \$CONDITIONS"
min(id)とmax(id)検索のためにこのクエリは非常に遅いです。パフォーマンスを向上させるために、私は - boundaryary-queryを使用し、手動で下限と上限を指定することに決めました。 (https://www.safaribooksonline.com/library/view/apache-sqoop-cookbook/9781449364618/ch04.html):
--boundary-query "select 176862848, 172862848"
しかし、sqoopが規定値を気にし、再び自身が最小値と最大値「ID」を見つけようとしません。
16/06/13 14:24:44 INFO tool.ImportTool: Lower bound value: 170581647
16/06/13 14:24:44 INFO tool.ImportTool: Upper bound value: 172909234
完全sqoopコマンド:
sqoop-import -fs hdfs://xxxxxxxxx/ -D mapreduce.map.java.opts=" -Duser.timezone=Europe/Paris" -m $nodes_number\
--connect jdbc:mysql://$server:$port/$database --username $username --password $password\
--target-dir $destination_dir --boundary-query "select 176862848, 172862848"\
--incremental append --check-column $id_column_name --last-value $last_value\
--split-by $id_column_name --query "SELECT $query_select FROM $table where \$CONDITIONS"\
--fields-terminated-by , --escaped-by \\ --enclosed-by '\"'
は、誰もがすでに満たしている/この問題を解決していますか?おかげ
自分の質問に編集として回答するのではなく、回答として回答してください。あなたはそれを受け入れることができます。 – Rob