Как закрыть соединение при использовании Jupyter SQL Magic?

Я использую SQL Magic для подключения к экземпляру db2. Однако я нигде не могу найти синтаксис того, как закрыть соединение, когда я закончу запрашивать базу данных.


person user3495958    schedule 22.12.2018    source источник


Ответы (5)


вы не можете явно закрыть соединение с помощью Jupyter SQL Magic. Фактически, это один из недостатков использования Jupyter SQL Magic для подключения к DB2. Вам нужно закрыть сеанс, чтобы закрыть соединение с Db2. Надеюсь это поможет.

person koya    schedule 26.12.2018
comment
У тебя случайно нет исходника? - person ponadto; 25.04.2020

Вы пробовали: %sql connect reset

person mao    schedule 22.12.2018
comment
Привет, дружище, пробовал, к сожалению, не получилось. - person user3495958; 22.12.2018
comment
Кто-нибудь знает, почему это не сработает? Или как проверить работает ли? - person pyrocarm; 08.01.2020

Вы также можете перезапустить ядро.

person JGarcia    schedule 17.02.2020

Это, вероятно, не очень полезно, и в той степени, в которой это возможно, вероятно, не будет работать в будущем. Но если вам нужен действительно хакерский способ закрыть соединение, я смог сделать это следующим образом (для базы данных postgres я предполагаю, что это похоже на db2):

In[87]: connections = %sql -l
Out[87]: {'postgresql://ngd@node1:5432/graph': <sql.connection.Connection at 0x7effdbcf6b38>}
In[88]: conn = connections['postgresql://ngd@node1:5432/graph'] 
In[89]: conn.session.close()
In[90]: %sql SELECT 1
...
StatementError: (sqlalchemy.exc.ResourceClosedError) This Connection is closed
[SQL: SELECT 1]
[parameters: [{'__name__': '__main__', '__doc__': 'Automatically created module for IPython interactive environment', '__package__': None, '__loader__': None, '__s ... (123202 characters truncated) ... stgresql://ngd@node1:5432/graph']", '_i28': "conn = connections['postgresql://ngd@node1:5432/graph']\nconn.session.close()", '_i29': '%sql SELECT 1'}]]

Большая проблема в том, что если вы хотите переподключиться, это не сработает. Даже после запуска %reload_ext sql и повторной попытки подключения он по-прежнему считает, что соединение закрыто, когда вы пытаетесь его использовать. Поэтому, если кто-то не знает, как исправить такое поведение, это полезно только для отключения, если вы не хотите повторно подключаться снова (к той же базе данных с теми же параметрами) перед перезапуском ядра.

person reductionista    schedule 13.09.2020

сначала выйдите из записной книжки, если вы хотите закрыть соединение.

person Odd Zhang    schedule 31.01.2020