Java使用sqoop连接Postgre库的参数注意事项

sqoop的jar包连接Postgre库的参数注意事项

  • 全网仅此一家
  • 参数:schema的使用
    • 连接Postgre库的代码示例
  • 另外我自己修改了sqoop-1.4.5的jar包源码

全网仅此一家

参数:schema的使用

java在调用sqoop时候,一些通用参数在此就不介绍了,很多地方都有详细介绍,本文只介绍一些我个人在使用sqoop工具包遇到的问题:访问Postgre库时候怎么加上schema参数

  • 1 加上schema参数时候,要在–schema之前再加一个"–"
  • 2 schema参数要加在所有参数的最后

连接Postgre库的代码示例

// 将HDFS文件导入到Postgre库
/**
*@param conf 连接Hadoop的conf
*@param pg_tablename pg库的表名
*@param table_columns 表的列名
*@param schema_name schema名字
*@param hdfsDir HDFS的文件目录
*@param pg_con_info_map pg库的连接信息
*/
public static void ExportCmd(Configration conf,
String pg_tablename,String schema_name,List<String> table_columns,
String hdfsDir,Map<String,String> pg_con_info_map){
     
	list<String> list = new ArryList<>();
	//pg库的连接名
	list.add("--connect");
	list.add(pg_con_info_map.get("DRIVERURL"));
	list.add("--username");
	list.add(pg_con_info_map.get("USER"));
	list.add("--password");
	list.add(pg_con_info_map.get("PASSWORD"));
	list.add("--table");
	list.add(pg_tablename);
	list.add("--colnumns");
	list.add(StringUtils.join(table_columns));
	list.add("--fields-terminated-by");
	list.add("\t");
	list.add("--export-dir");
	list.add(hdfsDir);
	list.add("-m");
	list.add("1");
	//设置表的schema
	//放在所有参数的最后
	list.add("--");
	list.add("--schema");
	list.add(schema_name);
	
	Exporter exporter = new Exporter();
	....
}

另外我自己修改了sqoop-1.4.5的jar包源码

修改了jar包的源码,目前支持scheme.tableName的表名格式,例如表名为:hero.zero_test_pg,会自动处理,在Postgre库中找"hero".zero_test_pg的表名,
原来schema参数依然可以使用,jar包后续会上传

你可能感兴趣的:(Java,sqoop,Postgre,Schema)