如何连接到 ruby 文件中的 cosmos db

How to connect to cosmos db in ruby file

我想连接到 ruby 文件中的 Azure cosmos DB,谁能建议我如何连接数据库,是否有可用的 gem,我可以向其传递连接字符串那个数据库的。

谢谢

以下信息对我有用,我在这里找到的 Connect to CosmosDB using RUBY

如果您还没有,请先在 ODBC DSN(数据源名称)中指定连接属性。这是驱动程序安装的最后一步。您可以使用 Microsoft ODBC 数据源管理器来创建和配置 ODBC DSN。

您需要来自 CosmosDB 的以下信息

AccountEndpoint:Cosmos DB 帐户 URL 来自 Cosmos DB 帐户的键 blade AccountKey:在 Azure 门户中,导航到 Cosmos DB 服务和 select 您的 Azure Cosmos DB 帐户。从资源菜单,转到密钥页面。找到 PRIMARY KEY 值并将 AccountKey 设置为此值。

您将需要安装以下 gem

gem install dbi
gem install dbd-odbc
gem install ruby-odbc

像这样写

#connect to the DSN
require 'DBI'
cnxn = DBI.connect('DBI:ODBC:CData CosmosDB Source','','')

#execute a SELECT query and store the result set
resultSet = cnxn.execute("SELECT City, CompanyName FROM Customers")

#display the names of the columns
resultSet.column_names.each do |name|
  print name, "\t"
end
puts

#display the results
while row = resultSet.fetch do
  (0..resultSet.column_names.size - 1).each do |n|
    print row[n], "\t"
  end
  puts
end
resultSet.finish

#close the connection
cnxn.disconnect if cnxn

由于您的问题没有先决条件,我假设您想知道使用 Ruby.

在 Azure CosmosDB 上工作的完整过程

您需要创建一个 Azure 存储帐户和 Azure CosmosDB 帐户。 创建 Azure 存储帐户的最简单方法是使用 Azure 门户。要了解更多信息,请参阅 Create a storage account

要创建 Azure Cosmos DB Table API 帐户,请参阅 Create a database account

要使用 Azure 存储或 Azure Cosmos DB,您必须下载并使用 Ruby Azure 包,其中包含一组与 Table REST 服务通信的便利库。

使用Ruby宝石获得礼包

  1. 使用命令行界面,例如 PowerShell (Windows)、终端 (Mac) 或 Bash (Unix)。
  2. 在命令 window 中键入 gem install azure-storage-table 以安装 gem 和依赖项。

导入包 使用您最喜欢的文本编辑器,将以下内容添加到您打算使用存储的 Ruby 文件的顶部:require "azure/storage/table"

添加您的连接字符串 您可以连接到 Azure 存储帐户或 Azure Cosmos DB Table API 帐户。根据您使用的帐户类型获取连接字符串。

添加 Azure 存储连接 Azure 存储模块读取环境变量 AZURE_STORAGE_ACCOUNT 和 AZURE_STORAGE_ACCESS_KEY 以获取连接到您的 Azure 存储帐户所需的信息。如果没有设置这些环境变量,在使用Azure::Storage::Table::TableService前必须指定账户信息,代码如下:

Azure.config.storage_account_name = "您的 Azure 存储帐户" Azure.config.storage_access_key = "你的 Azure 存储访问密钥"

添加 Azure Cosmos DB 连接 要连接到 Azure Cosmos DB,请从 Azure 门户复制主连接字符串,并使用复制的连接字符串创建一个客户端对象。您可以在创建 TableService 对象时传递 Client 对象:

common_client = Azure::Storage::Common::Client.create(storage_account_name:'myaccount', storage_access_key:'mykey', storage_table_host:'mycosmosdb_endpoint')

table_client = Azure::Storage::Table::TableService.new(客户端: common_client)

如有需要请参考link