AWS RedShift - .NET Core(ODBC支持?)

sk1*_*900 4 odbc amazon-redshift .net-core .net-standard

如何使用.NET Core连接和运行针对AWS RedShift的查询?代码示例请.我已经浏览了AWS docs和.Net Core文档,但没有运气.

Wil*_*oyd 7

这个答案是针对特定时间点的答案,并且不会老化......

EntityFramework核心项目是我最关注的项目.缺乏ODBC是众所周知的,特别是对于那些想要连接到Oracle的人.目前,您可能需要为.NET核心分叉Oracle客户端并根据需要进行修改.

我在Google快速搜索后找到了这些项目,现在可以为您提供帮助......

- https://github.com/LinqDan/oracleclientcore - https://github.com/LinqDan/Mono.Data.OdbcCore

从长远来看,你需要密切关注这两个GitHub问题,这些问题正在为EntityFramework Core和.NETStandard API进行跟踪.

更新6/23/2017:

现在可以通过Npgsql.EntityFrameworkCore.PostgreSQLNuGet包和相关的Entity Framework Core包实现.显然,PostgreSQL团队已经厌倦了等待ODBC支持(目前还没有最新版本netstandard2.0),并且在11月的时间框架内使用netstandard编写了自己的驱动程序.在入门的网站Npgsql的页面上覆盖它在老JSON项目格式使用-但列出的依赖关系仍然有效.

以下是如何使用该包...

using (var conn = new NpgsqlConnection("Host=myserver;Username=mylogin;Password=******;Database=music"))
{
    conn.Open();
    using (var cmd = new NpgsqlCommand())
    {
        cmd.Connection = conn;

        cmd.CommandText = "SELECT name FROM artists";
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine(reader.GetString(0));
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用这个驱动程序时要记住一件事 - 它是为PostgreSQL而不是Redshift编写的.虽然Redshift基于PostgreSQL,但它的底层引擎更像是Cassandra而不是其他任何东西.因此,亚马逊必须在开发中做出一些选择,以删除PostgreSQL支持的某些内容 - 例如SQL变量.因此,对于您在其他实体框架实现中可能习惯的某些事项,您将获得相当有限的经验.只要你继续使用直接访问*Connection,*Command和DataReader类并编写自己的SQL,你应该没问题.


Joh*_*ein -5

只需通过 JDBC 或ODBC 驱动程序连接到 Amazon Redshift,然后像普通 SQL 数据库一样访问它。

您将使用 AWS API 来启动/停止集群,但所有查询和请求都通过 SQL 连接进行。