我正在尝试将ssis包移植到目标配置单元而不是db2。我在使用odbc目标任务时遇到问题 hortonworks公司 配置单元odbc。我以前尝试过microsoft odbc,但未能创建有效的插入查询。
我阅读了“利用SQLServerIntegrationServices中的hadoop集群”文档,其中提到从odbc写入hive是不可能的,但该文档来自2013年。
问题是:我有一个带有oledb源(db2)和odbc目标(hive)的数据流任务。如果我将odbc目标设置为“逐行”,那么加载将按预期完成。但是,如果将其设置为“batch”,则只会收到以下错误:
错误:0x384将令牌推送到配置单元,odbc目标[2]:发生开放数据库连接(odbc)错误。sqlexecute在插入第1行时返回错误
我已经从有问题的任务中附加了odbc跟踪。我希望在跟踪中看到一个SQLExecuteSql\u错误,但似乎没有。
这甚至可以通过odbc实现吗?或者我需要使用hdfs destination后跟一个hive任务吗?
DtsDebugHost 1e9c-2488 ENTER SQLPrepareW
HSTMT 0x08D45108
WCHAR * 0x0583CEE4 [ 86] "INSERT INTO `default`.`temp_000000000000_return` ( `link_id`,`tok_data`) VALUES (?, ?)"
SDWORD 86
DtsDebugHost 1e9c-2488 EXIT SQLPrepareW with return code 0 (SQL_SUCCESS)
HSTMT 0x08D45108
WCHAR * 0x0583CEE4 [ 86] "INSERT INTO `default`.`temp_000000000000_return` ( `link_id`,`tok_data`) VALUES (?, ?)"
SDWORD 86
DtsDebugHost 1e9c-2488 ENTER SQLSetStmtAttrW
SQLHSTMT 0x08D45108
SQLINTEGER 21 <SQL_ATTR_PARAMS_PROCESSED_PTR>
SQLPOINTER 0x057D8578
SQLINTEGER 0
DtsDebugHost 1e9c-2488 EXIT SQLSetStmtAttrW with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x08D45108
SQLINTEGER 21 <SQL_ATTR_PARAMS_PROCESSED_PTR>
SQLPOINTER 0x057D8578
SQLINTEGER 0
DtsDebugHost 1e9c-2488 ENTER SQLSetStmtAttrW
SQLHSTMT 0x08D45108
SQLINTEGER 20 <SQL_ATTR_PARAM_STATUS_PTR>
SQLPOINTER 0x084B4158
SQLINTEGER 0
DtsDebugHost 1e9c-2488 EXIT SQLSetStmtAttrW with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x08D45108
SQLINTEGER 20 <SQL_ATTR_PARAM_STATUS_PTR>
SQLPOINTER 0x084B4158
SQLINTEGER 0
DtsDebugHost 1e9c-2488 ENTER SQLBindParameter
HSTMT 0x08D45108
UWORD 1
SWORD 1 <SQL_PARAM_INPUT>
SWORD -16 <SQL_C_SLONG>
SWORD 4 <SQL_INTEGER>
SQLULEN 10
SWORD 0
PTR 0x08316178
SQLLEN 4
SQLLEN * 0x08315F98
DtsDebugHost 1e9c-2488 EXIT SQLBindParameter with return code 0 (SQL_SUCCESS)
HSTMT 0x08D45108
UWORD 1
SWORD 1 <SQL_PARAM_INPUT>
SWORD -16 <SQL_C_SLONG>
SWORD 4 <SQL_INTEGER>
SQLULEN 10
SWORD 0
PTR 0x08316178
SQLLEN 4
SQLLEN * 0x08315F98 (137452312)
DtsDebugHost 1e9c-2488 ENTER SQLBindParameter
HSTMT 0x08D45108
UWORD 2
SWORD 1 <SQL_PARAM_INPUT>
SWORD -8 <SQL_C_WCHAR>
SWORD -8 <SQL_WCHAR>
SQLULEN 35
SWORD 0
PTR 0x057F85C8
SQLLEN 72
SQLLEN * 0x08315FB8
DtsDebugHost 1e9c-2488 EXIT SQLBindParameter with return code 0 (SQL_SUCCESS)
HSTMT 0x08D45108
UWORD 2
SWORD 1 <SQL_PARAM_INPUT>
SWORD -8 <SQL_C_WCHAR>
SWORD -8 <SQL_WCHAR>
SQLULEN 35
SWORD 0
PTR 0x057F85C8
SQLLEN 72
SQLLEN * 0x08315FB8 (137452312)
DtsDebugHost 1e9c-2c5c ENTER SQLExecute
HSTMT 0x08D45108
DtsDebugHost 1e9c-2c5c EXIT SQLExecute with return code 0 (SQL_SUCCESS)
HSTMT 0x08D45108
DtsDebugHost 1e9c-2c5c ENTER SQLGetDiagRecW
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x08D45108
SQLSMALLINT 1
SQLWCHAR * 0x0927EFA0
SQLINTEGER * 0x0927D784
SQLWCHAR * 0x0927DF98
SQLSMALLINT 1024
SQLSMALLINT * 0x0927D788
DtsDebugHost 1e9c-2c5c EXIT SQLGetDiagRecW with return code 100 (SQL_NO_DATA_FOUND)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x08D45108
SQLSMALLINT 1
SQLWCHAR * 0x0927EFA0
SQLINTEGER * 0x0927D784
SQLWCHAR * 0x0927DF98
SQLSMALLINT 1024
SQLSMALLINT * 0x0927D788
DtsDebugHost 1e9c-2488 ENTER SQLFreeHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x08D45108
DtsDebugHost 1e9c-2488 EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x08D45108
DtsDebugHost 1e9c-2488 ENTER SQLDisconnect
HDBC 0x0254EBD8
DtsDebugHost 1e9c-2488 EXIT SQLDisconnect with return code 0 (SQL_SUCCESS)
HDBC 0x0254EBD8
DtsDebugHost 1e9c-2488 ENTER SQLFreeHandle
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x0254EBD8
DtsDebugHost 1e9c-2488 EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x0254EBD8
DtsDebugHost 1e9c-2488 ENTER SQLFreeHandle
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0254E748
DtsDebugHost 1e9c-2488 EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 1 <SQL_HANDLE_ENV>
SQLHANDLE 0x0254E748
暂无答案!
目前还没有任何答案,快来回答吧!