当前位置: 首页 > 知识库问答 >
问题:

Azure表存储与使用Python的CosmosDB

东方建修
2023-03-14

我正在尝试通过python访问Azure表存储。

按老办法走查https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-how-to-use-python#install-the-azure-storage-sdk-for-python

但是它特别为Azure表(https://github.com/Azure/azure-storage-python)引用的Python SDK已经被移动/废弃,以支持Azure Cosmos DB SDK。

在弃用说明中,他们说使用这个SDK:https://github.com/Azure/azure-cosmosdb-python

在SDK的留档中,他们会将您引向https://azure.microsoft.com/en-us/develop/python/

在该页面上的表存储和链接中,它会将您引回第一个链接 (!!)

============

1) 我只想用Python SDK查询传统的Azure表存储(而不是CosmosDB)

2) 理想情况下,Python SDK 还包括 Azure 表的加密/解密功能

我错过了什么/python SDK是否仍然存在于任何地方?

注意:我看到 https://github.com/Azure/azure-cosmosdb-python/tree/master/azure-cosmosdb-table 但此 SDK 似乎需要 CosmosDB 部署 - 它无法连接到传统的 AzureTables。我的理解不正确吗?

感谢您提供的任何帮助。

共有3个答案

田翔
2023-03-14

事实上,Azure隐藏了Table Storage SDK引导链接的一部分,这有助于Cosmos DB Table API的推广。正如您在回答中提到的,Azure存储SDK现在已合并到Cosmos菜单中。

然而,我在回购中发现了以前版本的旧Azure表存储Python SDK。

您可以参考上面的链接,即使它不再更新。

顺便说一句,您可以通过此链接从Azure表存储转移到Azure Cosmos表API来看到好处。

希望它能帮助你。

王英彦
2023-03-14

Azure Table Storage在预览版中有一个新的python库,可通过pip进行安装。要安装,请使用以下pip命令:

pip install azure-data-tables

这个SDK既可以针对一个表,也可以针对Cosmosendpoint(尽管Cosmos存在一些已知的问题)。

对于查询Azure表存储帐户的用例,有两种查询方法。

查询单个表:

from azure.data.tables import TableClient

table_client = TableClient.from_connection_string(conn_str, table_name="myTableName")
query_filter = "RowKey eq 'row_key_5'"
for entity in table_client.query_entities(filter=query_filter):
    print(entity)

查询表的存储帐户:

from azure.data.tables import TableServiceClient

table_service_client = TableServiceClient.from_connection_string(conn_str, table_name="myTableName")
query_filter = "TableName eq 'myTable'"
for table in table_service_client .query_entities(filter=query_filter):
    print(table.table_name)

有关库中的更多示例,请查看Azure GitHub存储库中托管的示例。

(仅供参考,我在微软的Azure SDK for Python团队工作)

韦衡
2023-03-14

Azure CosmosDB表SDK是Azure存储表SDK。重新命名是Microsoft内部一些重组的一部分,但这是相同的代码和相同的endpoint,一切都一样。

Storage SDK是一个大客户端,它被拆分为Table/Queue/Blog/Files包,以便将Table的所有权交给CosmosDB团队。

https://docs.microsoft.com/en-us/azure/cosmos-db/table-support

新的Azure Cosmos DB Python SDK是唯一支持Python中的Azure表存储的SDK。此SDK连接Azure表存储和Azure Cosmos DB表API。

你也可以比较代码,你会看到:

  • https://github.com/Azure/azure-storage-python/tree/v0.36.0/azure/storage/table
  • https://github.com/Azure/azure-cosmosdb-python/tree/master/azure-cosmosdb-table/azure/cosmosdb/table

(我在微软的Azure SDK for Python团队工作)

 类似资料:
  • 我试图使用rest API从azure数据表中检索数据。 Api错误已输出,数据无效。 如果我同时添加RowKey和PartitionKey,就像下面这样。它起作用了。 是否需要通过行键? 如果我只想从一个分区检索所有数据。我知道,我们可以在查询参数中添加一个$filter,但这不会导致性能问题吗? 请分享你的想法。 谢谢!

  • 您好,我正在尝试使用REST Api实现简单的Azure函数。My env是MSVC 2019,创建了一个简单的mmApi Function应用程序 我将这一行添加到表存储[Table(“boards”,Connection=“AzureWebJobsStorage”)]IAsyncCollector中 正在抛出以下错误 函数(AzureFuncAppmmApi/CreateBoard)错误:Mi

  • 我们有一组blob触发器函数,我们计划为这些azure函数使用新的azure webjobs存储。我的问题是:由于新的存储帐户没有任何已处理文件的跟踪,是否会重新处理blob?如果是,我们可以避免这种再加工吗?在哪种情况下?

  • 我是azure云服务平台的新手。今天我遇到了Azure提供的Key-Vault存储服务。它具有存储应用程序级密钥和设置的能力。它具有增强的数据保护功能,是安全可靠的。 但我不清楚的是,要连接到Key-Vault,我需要存储在应用程序配置中的Key-Vault的工件。 如果是这样的话,当有人在密钥值上掉线时,他不会连接到我的密钥库并读取我的所有密钥。 如果我应该加密我的本地密钥存储库设置,那么我可以

  • 我必须对Azure表存储进行查询,其中我有以下设置:RowKey、PartitionKey、ThirdColumn RowKey是唯一的,Partitionkey与ThirdColumn相关联,这意味着所有值为“Y”的第三列都将具有分区键“X”。 我必须使用ThirdColumn值获取分区键为X的所有实体。这将不是Performance,因为Y既不是PartitionKey也不是RowKey。 问

  • 我们正在一个应用程序中使用Azure Storage SDK for Java V8来访问存储帐户中的一个简单表,只需几行,该版本无法通过客户安全扫描,但新版本的SDK似乎不适用于表存储。查看文档,使用最新SDK的表存储的唯一方法似乎是通过Cosmos DB table API访问。 “适用于 Java 的 Azur 存储”SDK 页(https://github.com/azure/azure-