
Azure Tables SDK for Python
FreeManage NoSQL key-value storage with ease.
Free · Opens the source repo
What Azure Tables SDK for Python does
The Azure Tables SDK for Python provides developers with a robust interface for working with NoSQL key-value storage, specifically designed for Azure Storage Tables and the Cosmos DB Table API. This skill allows users to perform essential operations such as creating, reading, updating, and deleting entities in a structured manner. It is particularly useful for applications that require scalable and flexible data storage solutions without the overhead of traditional relational databases.
With this SDK, users can easily manage their tables and entities using Python. The skill supports both synchronous and asynchronous operations, catering to different performance needs. Developers can create and delete tables, list existing tables, and perform CRUD operations on entities while ensuring that each entity is uniquely identified by its PartitionKey and RowKey. The SDK also includes capabilities for batch operations, enabling efficient handling of multiple entities in a single transaction.
This skill is ideal for developers and data engineers who are building applications that need to store and retrieve structured data efficiently. It is particularly beneficial in scenarios where data is frequently updated or queried, such as e-commerce platforms, inventory management systems, or any application that requires real-time data access. By leveraging Azure's cloud infrastructure, users can ensure their applications are scalable and reliable.
Overall, the Azure Tables SDK for Python simplifies the interaction with Azure's NoSQL storage solutions, making it easier for developers to integrate data storage capabilities into their applications without needing to manage the underlying infrastructure.
When to use it
Use this skill when you need to implement NoSQL storage solutions in Python applications, particularly for structured data storage and retrieval.
When not to use it
Avoid this skill if your application requires complex relational data management or if you are not using Azure services for data storage.
What you can build with it
E-commerce Inventory Management
Use the Azure Tables SDK to manage product inventory, allowing real-time updates and queries for stock levels.
User Data Storage for Applications
Store user profiles and settings in a structured format, enabling quick access and updates as users interact with your application.
Batch Processing of Logs
Utilize batch operations to efficiently log events or transactions in a single request, reducing the number of API calls and improving performance.
How to install Azure Tables SDK for Python
View source1. Install with the skills CLI
npx skills add sickn33/agentic-awesome-skills/azure-data-tables-py --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by sickn33Azure Tables SDK for Python
NoSQL key-value store for structured data (Azure Storage Tables or Cosmos DB Table API).
Installation
pip install azure-data-tables azure-identity
Environment Variables
# Azure Storage Tables
AZURE_STORAGE_ACCOUNT_URL=https://<account>.table.core.windows.net
# Cosmos DB Table API
COSMOS_TABLE_ENDPOINT=https://<account>.table.cosmos.azure.com
Authentication
from azure.identity import DefaultAzureCredential
from azure.data.tables import TableServiceClient, TableClient
credential = DefaultAzureCredential()
endpoint = "https://<account>.table.core.windows.net"
# Service client (manage tables)
service_client = TableServiceClient(endpoint=endpoint, credential=credential)
# Table client (work with entities)
table_client = TableClient(endpoint=endpoint, table_name="mytable", credential=credential)
Client Types
| Client | Purpose |
|---|---|
TableServiceClient | Create/delete tables, list tables |
TableClient | Entity CRUD, queries |
Table Operations
# Create table
service_client.create_table("mytable")
# Create if not exists
service_client.create_table_if_not_exists("mytable")
# Delete table
service_client.delete_table("mytable")
# List tables
for table in service_client.list_tables():
print(table.name)
# Get table client
table_client = service_client.get_table_client("mytable")
Entity Operations
Important: Every entity requires PartitionKey and RowKey (together form unique ID).
Create Entity
entity = {
"PartitionKey": "sales",
"RowKey": "order-001",
"product": "Widget",
"quantity": 5,
"price": 9.99,
"shipped": False
}
# Create (fails if exists)
table_client.create_entity(entity=entity)
# Upsert (create or replace)
table_client.upsert_entity(entity=entity)
Get Entity
# Get by key (fastest)
entity = table_client.get_entity(
partition_key="sales",
row_key="order-001"
)
print(f"Product: {entity['product']}")
Update Entity
# Replace entire entity
entity["quantity"] = 10
table_client.update_entity(entity=entity, mode="replace")
# Merge (update specific fields only)
update = {
"PartitionKey": "sales",
"RowKey": "order-001",
"shipped": True
}
table_client.update_entity(entity=update, mode="merge")
Delete Entity
table_client.delete_entity(
partition_key="sales",
row_key="order-001"
)
Query Entities
Query Within Partition
# Query by partition (efficient)
entities = table_client.query_entities(
query_filter="PartitionKey eq 'sales'"
)
for entity in entities:
print(entity)
Query with Filters
# Filter by properties
entities = table_client.query_entities(
query_filter="PartitionKey eq 'sales' and quantity gt 3"
)
# With parameters (safer)
entities = table_client.query_entities(
query_filter="PartitionKey eq @pk and price lt @max_price",
parameters={"pk": "sales", "max_price": 50.0}
)
Select Specific Properties
entities = table_client.query_entities(
query_filter="PartitionKey eq 'sales'",
select=["RowKey", "product", "price"]
)
List All Entities
# List all (cross-partition - use sparingly)
for entity in table_client.list_entities():
print(entity)
Batch Operations
from azure.data.tables import TableTransactionError
# Batch operations (same partition only!)
operations = [
("create", {"PartitionKey": "batch", "RowKey": "1", "data": "first"}),
("create", {"PartitionKey": "batch", "RowKey": "2", "data": "second"}),
("upsert", {"PartitionKey": "batch", "RowKey": "3", "data": "third"}),
]
try:
table_client.submit_transaction(operations)
except TableTransactionError as e:
print(f"Transaction failed: {e}")
Async Client
from azure.data.tables.aio import TableServiceClient, TableClient
from azure.identity.aio import DefaultAzureCredential
async def table_operations():
credential = DefaultAzureCredential()
async with TableClient(
endpoint="https://<account>.table.core.windows.net",
table_name="mytable",
credential=credential
) as client:
# Create
await client.create_entity(entity={
"PartitionKey": "async",
"RowKey": "1",
"data": "test"
})
# Query
async for entity in client.query_entities("PartitionKey eq 'async'"):
print(entity)
import asyncio
asyncio.run(table_operations())
Data Types
| Python Type | Table Storage Type |
|---|---|
str | String |
int | Int64 |
float | Double |
bool | Boolean |
datetime | DateTime |
bytes | Binary |
UUID | Guid |
Best Practices
- Design partition keys for query patterns and even distribution
- Query within partitions whenever possible (cross-partition is expensive)
- Use batch operations for multiple entities in same partition
- Use
upsert_entityfor idempotent writes - Use parameterized queries to prevent injection
- Keep entities small — max 1MB per entity
- Use async client for high-throughput scenarios
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Frequently asked questions about Azure Tables SDK for Python
Similar skills
ClickHouse Logs Queries
Efficiently manage Supabase logs with ClickHouse SQL.
EF Core D2 Database Diagram Generator
Visualize your EF Core models as D2 diagrams effortlessly.
Safe SQL Execution
Ensure secure SQL execution in Supabase applications.
Oracle to PostgreSQL Migration
Identify migration risks between Oracle and PostgreSQL.
SSMA Console
Streamline Oracle to SQL Server migrations with ease.
SQL Performance Optimization
Enhance SQL query efficiency across all databases.
