Redshift - разделить на нулевое поведение - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь запросить мой кластер Redshift, используя Python и psycopg2.Пожалуйста, ознакомьтесь с подробностями ниже:

for i in x:
    function_name(p1,p2)

def function_name(parameter_one,parameter_two):
    try:
        //Create Query
       //Create query dynamically


        //Run query here
        SELECT (SELECT SUM(value)
        FROM schemaName.tableName
        WHERE primary_key = 12532
        AND   TO_CHAR(tr_datetime,'YYYYMMDDHH24MI') > '201709162130'
        AND   TO_CHAR(tr_datetime,'YYYYMMDDHH24MI') <= '201709162145')/(SELECT SUM(value)
                                                                        FROM schemaName.tableName
                                                                        WHERE primary_key = = 12542
                                                                        AND   TO_CHAR(tr_datetime,'YYYYMMDDHH24MI') > '201709162130'
                                                                        AND   TO_CHAR(tr_datetime,'YYYYMMDDHH24MI') <= '201709162145');

    except Exception as exception:
        print("Error-----------------------------------")
        error = 'Error on line {}'.format(sys.exc_info()[-1].tb_lineno), type(exception).__name__, exception
        message = str(error)
        print("Error message " + str(exception))
        print("EXCEPTION OCCURRED" + message)

Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я сталкиваюсь с Divide by zero, моя программа прекращает выполнение.Я получаю следующее сообщение.Пожалуйста, обратитесь к трассировке стека ниже:

2018-12-21 13:50:36 -- EXCEPTION OCCURRED in module x for 12532
2018-12-21 13:50:36 -- EXCEPTION OCCURRED in module x for 12532
13:50:36
2018-12-21 13:50:36 -- ('Error on line 1062', 'QueryCanceledError', QueryCanceledError('Divide by zero\n',))
2018-12-21 13:50:36 -- ('Error on line 1062', 'QueryCanceledError', QueryCanceledError('Divide by zero\n',))
13:50:36
2018-12-21 13:50:36 -- EXCEPTION OCCURRED in module x for primary key 12532
2018-12-21 13:50:36 -- EXCEPTION OCCURRED in module x for primary key 12532
13:50:36
2018-12-21 13:50:36 -- ('Error on line 1001', 'InternalError', InternalError('current transaction is aborted, commands ignored until end of transaction block\n',))
2018-12-21 13:50:36 -- ('Error on line 1001', 'InternalError', InternalError('current transaction is aborted, commands ignored until end of transaction block\n',))
13:50:36
2018-12-21 13:50:36 -- EXCEPTION OCCURRED in module x for 12532
2018-12-21 13:50:36 -- EXCEPTION OCCURRED in module x for 12532
13:50:36
2018-12-21 13:50:36 -- ('Error on line 1001', 'InternalError', InternalError('current transaction is aborted, commands ignored until end of transaction block\n',))
2018-12-21 13:50:36 -- ('Error on line 1001', 'InternalError', InternalError('current transaction is aborted, commands ignored until end of transaction block\n',))

Мой вопрос, почему мое соединение закрыто?Почему я получаю current transaction is aborted, commands ignored until end of transaction block, я ожидал, что программа продолжит другие итерации, так как мой код инкапсулирован в блок try / catch.

Было бы здорово, если бы кто-то мог помочь мне понять основную причинуи фоновое поведение Redshift и Python.

...