Выполнение запросов oracle через Azure databricks

#oracle #azure-databricks

#Oracle #azure-databricks

Вопрос:

Привет, я создал записную книжку в Azure databricks для извлечения таблицы из базы данных oracle. Я получаю сообщение об ошибке DPI-1047 не удается найти 64-разрядную клиентскую библиотеку oracle. Я предполагаю, что в моем кластере должна быть запущена клиентская библиотека oracle. Я попытался исследовать проблему и нашел много сообщений, в которых люди говорили, что мне нужен сценарий инициализации для клиента oracle. Однако я не смог найти, как создать этот сценарий инициализации. Я также нашел на этом веб-сайте

https://medium.com/@srijansahay/connecting-sql-server-oracle-mysql-and-postgresql-from-azure-services-using-python-789e93d879b4

следующий код:

 %sh
mkdir -p /opt/oracle
cd /opt/oracle
wget https://download.oracle.com/otn_software/linux/instantclient/193000/instantclient-basic-linux.x64-19.3.0.0.0dbru.zip
unzip instantclient-basic-linux.x64–19.3.0.0.0dbru.zip
sudo sh -c “echo /opt/oracle/instantclient_19_3 > /etc/ld.so.conf.d/oracle-instantclient.conf”
sudo ldconfig
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_3:$LD_LIBRARY_PATH
  

Однако этот код предназначен для Linux. Как мне изменить его для Windows? Вот что у меня есть до сих пор:

 %sh
mkdir -p /opt/oracle
cd /opt/oracle
wget https://download.oracle.com/otn_software/nt/instantclient/19800/instantclient-basic-windows.x64-19.8.0.0.0dbru.zip
unzip instantclient-basic-windows.x64-19.8.0.0.0dbru.zip
sudo sh -c “echo /opt/oracle/instantclient_19_8 > /etc/ld.so.conf.d/oracle-instantclient.conf”
sudo ldconfig
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_8:$LD_LIBRARY_PATH
  

Я думаю, что все, что было после распаковки, неверно. Заранее спасибо за помощь, я новичок в databricks.

Ответ №1:

Поскольку в Windows нет разделения пути к библиотеке и пути, нам нужно использовать PATH для обоих. В конце скрипта вы размещаете содержимое python.

 Rem ic.cmd
C:
Set ORABAS = "optoracle"
cd %ORABAS%
wget https://download.oracle.com/otn_software/nt/instantclient/19600/instantclient-basic-windows.x64-19.6.0.0.0dbru.zip
unzip instantclient-basic-windows.x64-19.6.0.0.0dbru.zip
set ORACLE_HOME=%ORABAS%instantclient_19_3
set TNS_ADMIN=%ORACLE_HOME%
set PATH=%ORACLE_HOME%;%PATH%
  

Комментарии:

1. Спасибо за помощь! Я получил синтаксическую ошибку в первой строке, и я не совсем уверен, как ее исправить.

2. Итак, я использую databricks и помещаю ваш код в ячейку перед моим кодом python в записной книжке. Нужно ли мне иметь строку, чтобы указать, что это за код, отличный от python? В моем примере они используют %sh для обозначения того, что ячейка предназначена для команд оболочки. Является ли Rem комментарием? Можно ли это запустить в записной книжке Azure bricks? Это то, что мне нужно для инициализации файла? Мне очень жаль, что я только сегодня запустил azure bricks.