подключить SQL к apache nifi

Я новичок в nifi, и я хочу подключить базу данных SQL-сервера к nifi и создать поток данных с процессорами. как я могу это сделать, может кто-нибудь Помогите мне с этим ясно.

Спасибо заранее, сэм


person sam    schedule 05.01.2017    source источник


Ответы (3)


Вот две отличные статьи о получении информации в базах данных и из них с помощью NiFi:

  1. http://www.batchiq.com/database-injest-with-nifi.html

  2. http://www.batchiq.com/database-extract-with-nifi.html

Они описывают / иллюстрируют, как настроить DBCPConnectionPool для обеспечения подключения к СУБД и примеры потоков для извлечения и приема данных.

person mattyb    schedule 05.01.2017
comment
Мне нужно установить SQL Server-2012 на моем компьютере, который мне нужно установить. можете поделиться мне правильной ссылкой на SQL-сервер, чтобы связать его с nifi. - person sam; 06.01.2017
comment
Эта ссылка на DBCPConnectionPool устарела. В настоящее время похоже, что версия 1.7.0 здесь: nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/ К сожалению, документы используют iframe, поэтому прямая ссылка на страницу теряет меню. Лучше зайти в nifi.apache.org/docs.html и найти в меню DBCPConnectionPool. . Глупое название для компонента, когда вы ищете базу данных, JDBC, RDBMS или что-то в этом роде. - person Davos; 06.07.2018

Расширение ответ от mattyb

Если вы используете последнюю версию песочницы Hortonworks или другую установку, в которой используются контейнеры докеров, прочтите ниже.

Вам необходимо установить файл JDBC jar внутри докера. Для SQL Server это должно быть 6.2 или выше.

docker ps
docker exec -it <mycontainer uuid> bash

Как мне попасть в оболочку контейнера Docker? поможет вам войти в контейнер.

cd file:///usr/lib/jvm/jre/lib/
mkdir jdbc
cd ./jdbc
wget https://download.microsoft.com/download/3/F/7/3F74A9B9-C5F0-43EA-A721-07DA590FD186/sqljdbc_6.2.2.0_enu.tar.gz
tar xvzf sqljdbc_6.2.2.0_enu.tar.gz
cp ./sqljdbc_6.2/enu/mssql-jdbc-6.2.2.jre8.jar ./

Установка DBCPConnectionPool базы данных Apache Nifi JDBC

jdbc:sqlserver://192.168.1.201:1433;databaseName=[your database]
com.microsoft.sqlserver.jdbc.SQLServerDriver

Возможно, вам потребуется заменить IP-адрес на IPv4-адрес вашего хоста, который находится в ipconfig в Windows или ifconfig в Mac / Linux.

Вы можете изменить file:///usr/lib/jvm/jre/lib/ на любой желаемый путь.

person TamusJRoyce    schedule 08.11.2017
comment
Это фантастика! Большое спасибо! Я собирался биться головой о несколько стен, потому что я работаю в докере и не знаю, как это будет сделано из контейнера. Я думаю, что, возможно, стоит добавить к этому некоторый код, чтобы разрешить загрузку драйвера jdbc как части образа докера, чтобы у вас был jdbc без необходимости запускать в него exec - person Newteq Developer; 19.09.2019
comment
Если вы прокомментируете или дадите ссылку на рабочий пример, буду рад его добавить - person TamusJRoyce; 20.09.2019
comment
На самом деле я работаю над dockerfile, чтобы мы могли использовать его для нашего решения. Я выложу его здесь, когда он заработает :) - person Newteq Developer; 20.09.2019
comment
Просто к сведению - sqljdbc версии 8.4.1 выдавал мне «устаревшую» ошибку и добился успеха только при использовании упомянутой здесь версии 6.2. - person cgage1; 25.11.2020

Расширение ответа TamusJRoyce

Если вы запускаете nifi через образ докера, например apache/nifi, или вышеупомянутую песочницу Hortonworks, следующее должно помочь вам получить требуемый драйвер в образ, чтобы вам не приходилось exec в контейнер, чтобы сделать это вручную.

См. Комментарии под файлом докера

FROM apache/nifi

USER root
RUN mkdir /lib/jdbc
WORKDIR /lib/jdbc
RUN wget https://download.microsoft.com/download/3/F/7/3F74A9B9-C5F0-43EA-A721-07DA590FD186/sqljdbc_6.2.2.0_enu.tar.gz
RUN tar xvzf sqljdbc_6.2.2.0_enu.tar.gz
RUN cp ./sqljdbc_6.2/enu/mssql-jdbc-6.2.2.jre8.jar ./

USER nifi

EXPOSE 8080 8443 10000 8000

WORKDIR ${NIFI_HOME}
ENTRYPOINT ["../scripts/start.sh"]
  1. В приведенном выше изображении используется apache/nifi в качестве базового изображения. Вы можете использовать любой образ докера nifi, имеющий базу, если хотите.
  2. Вы можете указать любое местоположение для lib/jdbc, просто помните, что вам нужно использовать это как ссылку для местоположения файла, чтобы на него ссылались как на file:///lib/jdbc/mssql-jdbc-6.2.2.jre8.jar
  3. Наконец, вернитесь к пользователю nifi и закончите со стандартными деталями изображения nifi. Это позволит изображению работать правильно.
person Newteq Developer    schedule 20.09.2019