如何在 C# 中以编程方式在 Apache Drill 的存储插件中创建连接

本文关键字:存储 插件 创建 连接 Drill 方式 编程 Apache | 更新日期: 2023-09-27 18:34:01

我想通过我的代码在存储插件中添加新连接。请您告诉如何在 C# 中以编程方式在存储插件中添加或配置连接。

是否可以通过命令提示符配置存储插件连接?如果是,如何?

如何在 C# 中以编程方式在 Apache Drill 的存储插件中创建连接

我为此找到了一些解决方案:

           var request = (HttpWebRequest)WebRequest.Create(url);
           var postData = "name=" + name + "&config=" + config;
           var data = Encoding.ASCII.GetBytes(postData);
           request.Method = "POST";
           request.ContentType = "application/x-www-form-urlencoded";
           request.ContentLength = data.Length;
           using (var stream = request.GetRequestStream())
           {
               stream.Write(data, 0, data.Length);
           }
           var response = (HttpWebResponse)request.GetResponse();
           var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
           if (responseString != null)
           {
               var jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(responseString);
               return jsonObject.result == "success";
           }

根据演练的文档,您可以添加插件:

  • 使用钻取 Web 控制台
  • 存储插件 REST API
  • 引导存储插件(适用于分布式环境

使用 WEB UI

根据文档,

转到:http://localhost:8047/storage(如果钻取在远程计算机上运行,请替换本地主机 bt IP/主机名

添加新的存储插件(说出名称sql)并单击创建。

把配置放在那里:

{
  type: "jdbc",
  enabled: true,
  driver: "com.microsoft.sqlserver.jdbc.SQLServerDriver",
  url:"jdbc:sqlserver://1.2.3.4:1433;databaseName=mydatabase",
  username:"user",
  password:"password"
}

如果您的凭据正确,它将返回成功。

检查 SQL 服务器插件的文档。

注意:请确保您在<drill-directory>/jars/3rdparty中添加了sqljdbc41.4.2.6420.100.jar

使用 REST API

根据文档,

curl -X POST -H "Content-Type: application/json" -d '{"name":"sql","config": { type: "jdbc", enabled: true, driver: "com.microsoft.sqlserver.jdbc.SQLServerDriver",url:"jdbc:sqlserver://1.2.3.4:1433;databaseName=mydatabase",username:"user", password:"password"}' http://localhost:8047/storage/sql.json

我想没有直接的方法可以通过客户端添加插件C++。您可以使用C++为 POST 请求编写代码。