sql-server - Google Data Fusion 中的 SQL Server 源不起作用(SSL 握手问题)
问题描述
我在 Data Fusion 中创建了一个简单的管道,它从单个 MS SQL Server 表中读取数据并写入 BigQuery。当连接到 SQL Server 并出现套接字握手错误时,它会失败。
我在创建自己的 dataproc 集群时看到了这个问题,我知道这与使用 conscrypt 作为 ssl 时默认使用的 dataproc 有关。我还找到了一种解决方法,即在创建集群时设置一个属性:dataproc:dataproc.conscrypt.provider.enable=false
在运行 Data Fusion 时这是不可能的,因为我无法控制集群的创建方式。我已尝试将该属性添加到引擎配置部分,但它不起作用,并且该属性未显示在 dataproc 集群配置页面中。
这是数据融合中的堆栈跟踪:
java.net.SocketException:套接字已关闭 在 org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:390) ~[libconscrypt.jar:1.2.0-SNAPSHOT] 在 org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:225) ~[libconscrypt.jar:1.2.0-SNAPSHOT] 在 com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1688) ~[na:na] 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1977) ~[na:na] 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628) ~[na:na] 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459) ~[na:na] 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773) ~[na:na] 在 com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168) ~[na:na] 在 io.cdap.plugin.db.JDBCDriverShim.connect(JDBCDriverShim.java:60) ~[na:na] 在 java.sql.DriverManager.getConnection(DriverManager.java:664) ~[na:1.8.0_212] 在 java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_212]
我只想在 Data Fusion 中从 SQL Server 读取数据。
解决方案
发生这种情况是因为默认情况下 Dataproc 使用 Conscrypt SSL 提供程序,该提供程序在使用 Conscrypt SSL 提供程序创建 SSL 上下文时存在错误。
解决方案要解决运行管道时的问题,请在创建 Dataproc 集群时禁用使用 conscrypt。这可以通过为管道设置以下运行时参数来完成。
system.profile.properties.dataproc:dataproc.conscrypt.provider.enable false
以下屏幕截图显示了如何使用 UI 为管道设置此项
推荐阅读
- javascript - 函数在 React.js 中的 onClick 事件上不起作用
- c - C程序卡住,不进入main()
- javascript - 如何在 Google 图表的 x 轴上显示两个标题?
- php - WooCommerce 新订单电子邮件通知
- python - AttributeError:“MultiOutputClassifier”对象没有属性“classes_”
- r - 微分方程函数随时间而不同(在 R 中)
- javascript - 为什么 Tone JS 在 Svelte 组件中表现不佳?
- jquery - jquery - 当按钮可见时执行
- postgresql - 在 FIFO SQL 中计算价格
- azure - Azure powershell:查找哪个主体创建或修改了给定主体