私はnifiを使い始めたばかりですが、SQLサーバーデータベースをnifiに接続して、プロセッサでデータフローを作成します。どうすればこれを行うことができますか?.
事前に感謝サム
NiFiを使用したデータベースの情報の取得に関する2つの優れた記事を次に示します。
RDBMSへの接続を提供するために DBCPConnectionPool サービスを構成する方法と、データを抽出してデータを取り込むフローの例を説明/図解しています。
mattyb answer で拡張
最新のHortonworksサンドボックス、またはDockerコンテナーを使用するその他のセットアップを使用している場合は、以下をお読みください。
JDBC jarファイルdocker内をインストールする必要があります。 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 ./
jdbc:sqlserver://192.168.1.201:1433; databaseName = [your database] com.Microsoft.sqlserver.jdbc.SQLServerDriver
File:/// usr/lib/jvm/jre/lib /を任意のパスに変更できます。
Apache/nifi
などのdockerイメージまたは前述のHortonworksサンドボックスを介してnifiを実行している場合、次のようにすると、イメージに必要なドライバーを取得して、コンテナーにexec
する必要がなくなります。手動で行います。
Dockerファイルの下のコメントを参照してください
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"]
Apache/nifi
を使用しています。必要に応じて、ベースを持つ任意のnifi Dockerイメージを使用できます。lib/jdbc
には任意の場所を指定できます。file:///lib/jdbc/mssql-jdbc-6.2.2.jre8.jar
として参照されるように、これをファイルの場所の参照として使用する必要があることに注意してください。