Я пытаюсь портировать пакет служб SSIS для таргетинга на HIVE вместо DB2.У меня возникла проблема с задачей назначения ODBC, использующей ODBC Hortonworks HIVE.Ранее я пробовал Microsoft ODBC, но не смог создать действительный запрос на вставку.
Я прочитал документацию «Использование кластера Hadoop из служб интеграции SQL Server», в которой упоминалось, что запись в Hive из ODBC невозможна, но этодокументация от 2013 года.
Проблема: у меня есть задача потока данных с источником OLE DB (DB2) и назначением ODBC (Hive).Если я установил для ODBC Destination значение «Row-by-row», загрузка завершится, как и ожидалось.Однако, если я установил для него «Пакетный режим», я получу только следующую ошибку:
Ошибка: 0x384 в Push-токенах для HIVE, назначение ODBC [2]: произошла ошибка Open Database Connectivity (ODBC).SQLExecute вернул ошибку при вставке строки 1
Я прикрепил трассировку ODBC из проблемной задачи.Я ожидал увидеть SQLExecute SQL_ERROR в трассировке, но, похоже, его не хватает.
Возможно ли это даже через 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