我是nifi的新手,想要将SQL Server数据库连接到nifi,并使用处理器创建数据流。我应该如何操作?能否有人详细地帮助我呢?
提前感谢各位 Sam
我是nifi的新手,想要将SQL Server数据库连接到nifi,并使用处理器创建数据流。我应该如何操作?能否有人详细地帮助我呢?
提前感谢各位 Sam
在 mattyb 的回答 基础上进行扩展。
如果你正在使用最新的 Hortonworks 沙盒或其他使用 Docker 容器的设置,请阅读以下内容。
你必须在 Docker 容器内部安装 JDBC jar 文件。对于 SQL Server,它应该是 6.2 或更高版本。
docker ps
docker exec -it <mycontainer uuid> bash
如何进入Docker容器的shell?将帮助您登录到该容器。
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
你可能需要使用Windows中的ipconfig
或Mac/Linux中的ifconfig
来查找主机的IPv4地址,并将其替换为IP地址。
您可以将file:///usr/lib/jvm/jre/lib/
更改为任何您想要的路径。
在TamusJRoyce的回答的基础上进行扩展。
如果您通过像apache/nifi
或前面提到的Hortonworks sandbox这样的docker镜像来运行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
wget
中可能指定了不兼容的驱动程序,或者你需要在 NiFi 中指定的 jar
的位置没有被找到。 - Newteq Developer