【问题标题】:How to create connection in storage plugin of Apache Drill Programmatically in c#如何在 C# 中以编程方式在 Apache Drill 的存储插件中创建连接
【发布时间】:2016-02-10 06:08:53
【问题描述】:

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

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

【问题讨论】:

  • 你可以简单地使用Drill Web UI添加它吗?
  • 你能给我举个例子吗..?
  • 检查:drill.apache.org/docs/plugin-configuration-basics你要添加哪个插件?
  • 嗨..我已经通过这个链接..但没有找到任何代码或任何通过c#代码进行配置的东西..我想通过c#代码连接sql server(不是通过Web控制台或Drill Web用户界面)。请帮帮我.. 是否可以通过命令提示符(而不是 Web 控制台或 Drill Web UI)配置连接。
  • 我要写这个配置:{ "type": "jdbc", "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver", "url": "jdbc:sqlserver:/ /DEMO;databaseName=newdemo", "username": "sa", "password": "XXXXXX", "enabled": true } 通过编程方式。(在 C# 中)

标签: c# apache-drill


【解决方案1】:

我找到了一些解决方案:

           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";
           }

【讨论】:

    【解决方案2】:

    根据钻的docs,可以添加插件:

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

    使用网页界面

    根据docs

    转到:http://localhost:8047/storage如果 Drill 在远程机器上运行,则替换 localhost 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"
    }
    

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

    检查 docs 获取 sql-server 插件。

    注意:确保您在&lt;drill-directory&gt;/jars/3rdparty 中添加了sqljdbc41.4.2.6420.100.jar

    使用 REST API

    根据docs

    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 请求编写代码。

    【讨论】:

    • 嗨..谢谢您的回复.....请告诉我是否可以通过命令提示符配置存储插件.??
    • curl -X POST 我在 aswer 中提到的可以从命令提示符触发(我确定 linux 机器)
    • 您不是通过命令提示符引用 drill shell。对吗?
    • 是的..我不是通过命令提示符引用钻壳。但是窗户是什么..?你能给我举个例子吗..如何在cmd中使用curl -X POST..
    • 这可能对你有帮助:serverfault.com/questions/483754/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多