azure-data-tables-py

Azure Tables SDK for Python

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "azure-data-tables-py" with this command: npx skills add claudedjale/skillset/claudedjale-skillset-azure-data-tables-py

Azure 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://&#x3C;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_entity for idempotent writes

  • Use parameterized queries to prevent injection

  • Keep entities small — max 1MB per entity

  • Use async client for high-throughput scenarios

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-issue-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-observability

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-appconfiguration-java

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-kusto

No summary provided by upstream source.

Repository SourceNeeds Review