Azure表存储与使用Python的CosmosDB

时间:2018-01-21 22:49:35

标签: azure-cosmosdb azure-table-storage azure-sdk-python

我正在尝试通过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 Tables 特别引用的Python SDK(https://github.com/Azure/azure-storage-python)已被移动/弃用,以支持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 Tables的加密/解密功能。​​

我缺少什么/ python SDK在任何地方都存在?

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

感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:2)

Azure CosmosDB表SDK IS Azure存储表SDK。重塑品牌是微软内部重组的一部分,但这是相同的代码和相同的终端,同样的一切。

Storage SDK是一个大客户端,它被拆分为表/队列/博客/文件包,以便将表的所有权归给CosmosDB团队。

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

  

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

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

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

答案 1 :(得分:2)

Azure Table Storage 有一个 new python library 预览版,可通过 pip 安装。要安装使用以下 pip 命令

pip install azure-data-tables

此 SDK 能够以 Tables 或 Cosmos 端点为目标(尽管 Cosmos 有 known issues)。

对于查询 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 Repository 上托管的示例。

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

答案 2 :(得分:0)

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

但是,我在回购邮件中找到了来自previous version的旧Azure表存储Python SDK。

enter image description here

即使上述链接不再更新,您也可以参考上述链接。

顺便说一句,您可以通过从link迁移到Azure表存储中的Azure Cosmos Table API来获得好处。

希望它对你有所帮助。