SSIS - пакетная загрузка таблицы Hive через ODBC - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь портировать пакет служб 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
...