{"id":"e3a82bb6-44f4-4846-9cef-9e9643aa773f","shortId":"CvgTW4","kind":"skill","title":"azure-data-tables-py","tagline":"Azure Tables SDK for Python (Storage and Cosmos DB). Use for NoSQL key-value storage, entity CRUD, and batch operations.","description":"# Azure Tables SDK for Python\n\nNoSQL key-value store for structured data (Azure Storage Tables or Cosmos DB Table API).\n\n## Installation\n\n```bash\npip install azure-data-tables azure-identity\n```\n\n## Environment Variables\n\n```bash\n# Azure Storage Tables\nAZURE_STORAGE_ACCOUNT_URL=https://<account>.table.core.windows.net\n\n# Cosmos DB Table API\nCOSMOS_TABLE_ENDPOINT=https://<account>.table.cosmos.azure.com\n```\n\n## Authentication\n\n```python\nfrom azure.identity import DefaultAzureCredential\nfrom azure.data.tables import TableServiceClient, TableClient\n\ncredential = DefaultAzureCredential()\nendpoint = \"https://<account>.table.core.windows.net\"\n\n# Service client (manage tables)\nservice_client = TableServiceClient(endpoint=endpoint, credential=credential)\n\n# Table client (work with entities)\ntable_client = TableClient(endpoint=endpoint, table_name=\"mytable\", credential=credential)\n```\n\n## Client Types\n\n| Client | Purpose |\n|--------|---------|\n| `TableServiceClient` | Create/delete tables, list tables |\n| `TableClient` | Entity CRUD, queries |\n\n## Table Operations\n\n```python\n# Create table\nservice_client.create_table(\"mytable\")\n\n# Create if not exists\nservice_client.create_table_if_not_exists(\"mytable\")\n\n# Delete table\nservice_client.delete_table(\"mytable\")\n\n# List tables\nfor table in service_client.list_tables():\n    print(table.name)\n\n# Get table client\ntable_client = service_client.get_table_client(\"mytable\")\n```\n\n## Entity Operations\n\n**Important**: Every entity requires `PartitionKey` and `RowKey` (together form unique ID).\n\n### Create Entity\n\n```python\nentity = {\n    \"PartitionKey\": \"sales\",\n    \"RowKey\": \"order-001\",\n    \"product\": \"Widget\",\n    \"quantity\": 5,\n    \"price\": 9.99,\n    \"shipped\": False\n}\n\n# Create (fails if exists)\ntable_client.create_entity(entity=entity)\n\n# Upsert (create or replace)\ntable_client.upsert_entity(entity=entity)\n```\n\n### Get Entity\n\n```python\n# Get by key (fastest)\nentity = table_client.get_entity(\n    partition_key=\"sales\",\n    row_key=\"order-001\"\n)\nprint(f\"Product: {entity['product']}\")\n```\n\n### Update Entity\n\n```python\n# Replace entire entity\nentity[\"quantity\"] = 10\ntable_client.update_entity(entity=entity, mode=\"replace\")\n\n# Merge (update specific fields only)\nupdate = {\n    \"PartitionKey\": \"sales\",\n    \"RowKey\": \"order-001\",\n    \"shipped\": True\n}\ntable_client.update_entity(entity=update, mode=\"merge\")\n```\n\n### Delete Entity\n\n```python\ntable_client.delete_entity(\n    partition_key=\"sales\",\n    row_key=\"order-001\"\n)\n```\n\n## Query Entities\n\n### Query Within Partition\n\n```python\n# Query by partition (efficient)\nentities = table_client.query_entities(\n    query_filter=\"PartitionKey eq 'sales'\"\n)\nfor entity in entities:\n    print(entity)\n```\n\n### Query with Filters\n\n```python\n# Filter by properties\nentities = table_client.query_entities(\n    query_filter=\"PartitionKey eq 'sales' and quantity gt 3\"\n)\n\n# With parameters (safer)\nentities = table_client.query_entities(\n    query_filter=\"PartitionKey eq @pk and price lt @max_price\",\n    parameters={\"pk\": \"sales\", \"max_price\": 50.0}\n)\n```\n\n### Select Specific Properties\n\n```python\nentities = table_client.query_entities(\n    query_filter=\"PartitionKey eq 'sales'\",\n    select=[\"RowKey\", \"product\", \"price\"]\n)\n```\n\n### List All Entities\n\n```python\n# List all (cross-partition - use sparingly)\nfor entity in table_client.list_entities():\n    print(entity)\n```\n\n## Batch Operations\n\n```python\nfrom azure.data.tables import TableTransactionError\n\n# Batch operations (same partition only!)\noperations = [\n    (\"create\", {\"PartitionKey\": \"batch\", \"RowKey\": \"1\", \"data\": \"first\"}),\n    (\"create\", {\"PartitionKey\": \"batch\", \"RowKey\": \"2\", \"data\": \"second\"}),\n    (\"upsert\", {\"PartitionKey\": \"batch\", \"RowKey\": \"3\", \"data\": \"third\"}),\n]\n\ntry:\n    table_client.submit_transaction(operations)\nexcept TableTransactionError as e:\n    print(f\"Transaction failed: {e}\")\n```\n\n## Async Client\n\n```python\nfrom azure.data.tables.aio import TableServiceClient, TableClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def table_operations():\n    credential = DefaultAzureCredential()\n    \n    async with TableClient(\n        endpoint=\"https://<account>.table.core.windows.net\",\n        table_name=\"mytable\",\n        credential=credential\n    ) as client:\n        # Create\n        await client.create_entity(entity={\n            \"PartitionKey\": \"async\",\n            \"RowKey\": \"1\",\n            \"data\": \"test\"\n        })\n        \n        # Query\n        async for entity in client.query_entities(\"PartitionKey eq 'async'\"):\n            print(entity)\n\nimport asyncio\nasyncio.run(table_operations())\n```\n\n## Data Types\n\n| Python Type | Table Storage Type |\n|-------------|-------------------|\n| `str` | String |\n| `int` | Int64 |\n| `float` | Double |\n| `bool` | Boolean |\n| `datetime` | DateTime |\n| `bytes` | Binary |\n| `UUID` | Guid |\n\n## Best Practices\n\n1. **Design partition keys** for query patterns and even distribution\n2. **Query within partitions** whenever possible (cross-partition is expensive)\n3. **Use batch operations** for multiple entities in same partition\n4. **Use `upsert_entity`** for idempotent writes\n5. **Use parameterized queries** to prevent injection\n6. **Keep entities small** — max 1MB per entity\n7. **Use async client** for high-throughput scenarios\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","data","tables","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-azure-data-tables-py","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-data-tables-py","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (5,718 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:30.135Z","embedding":null,"createdAt":"2026-04-18T21:32:21.637Z","updatedAt":"2026-04-24T18:50:30.135Z","lastSeenAt":"2026-04-24T18:50:30.135Z","tsv":"'-001':194,235,266,286 '1':403,471,514 '10':249 '1mb':564 '2':410,524 '3':329,417,535 '4':545 '5':198,552 '50.0':351 '6':559 '7':567 '9.99':200 'account':67 'action':588 'api':47,73 'applic':582 'ask':626 'async':433,445,451,469,475,483,569 'asyncio':487 'asyncio.run':488 'authent':78 'await':464 'azur':2,6,27,40,53,57,62,65 'azure-data-t':52 'azure-data-tables-pi':1 'azure-ident':56 'azure.data.tables':85,390 'azure.data.tables.aio':437 'azure.identity':81 'azure.identity.aio':442 'bash':49,61 'batch':25,386,393,401,408,415,537 'best':512 'binari':509 'bool':504 'boolean':505 'boundari':634 'byte':508 'clarif':628 'clear':601 'client':94,98,105,110,119,121,166,168,171,434,462,570 'client.create':465 'client.query':479 'cosmos':13,44,70,74 'creat':135,140,186,203,212,399,406,463 'create/delete':124 'credenti':89,102,103,117,118,449,459,460 'criteria':637 'cross':375,531 'cross-partit':374,530 'crud':23,130 'data':3,39,54,404,411,418,472,491 'datetim':506,507 'db':14,45,71 'def':446 'defaultazurecredenti':83,90,444,450 'delet':150,275 'describ':589,605 'design':515 'distribut':523 'doubl':503 'e':427,432 'effici':296 'endpoint':76,91,100,101,112,113,454 'entir':245 'entiti':22,108,129,173,177,187,189,208,209,210,216,217,218,220,226,228,239,242,246,247,251,252,253,270,271,276,279,288,297,299,306,308,310,318,320,333,335,356,358,370,380,383,385,466,467,477,480,485,541,548,561,566 'environ':59,617 'environment-specif':616 'eq':303,324,339,362,482 'even':522 'everi':176 'except':424 'execut':584 'exist':143,148,206 'expens':534 'expert':622 'f':237,429 'fail':204,431 'fals':202 'fastest':225 'field':259 'filter':301,313,315,322,337,360 'first':405 'float':502 'form':183 'get':164,219,222 'gt':328 'guid':511 'high':573 'high-throughput':572 'id':185 'idempot':550 'ident':58 'import':82,86,175,391,438,443,486 'inject':558 'input':631 'instal':48,51 'int':500 'int64':501 'keep':560 'key':19,34,224,230,233,281,284,517 'key-valu':18,33 'limit':593 'list':126,155,368,372 'lt':343 'manag':95 'match':602 'max':344,349,563 'merg':256,274 'miss':639 'mode':254,273 'multipl':540 'mytabl':116,139,149,154,172,458 'name':115,457 'nosql':17,32 'oper':26,133,174,387,394,398,423,448,490,538 'order':193,234,265,285 'output':611 'overview':592 'paramet':331,346 'parameter':554 'partit':229,280,291,295,376,396,516,527,532,544 'partitionkey':179,190,262,302,323,338,361,400,407,414,468,481 'pattern':520 'per':565 'permiss':632 'pip':50 'pk':340,347 'possibl':529 'practic':513 'prevent':557 'price':199,342,345,350,367 'print':162,236,309,384,428,484 'product':195,238,240,366 'properti':317,354 'purpos':122 'py':5 'python':10,31,79,134,188,221,243,277,292,314,355,371,388,435,493 'quantiti':197,248,327 'queri':131,287,289,293,300,311,321,336,359,474,519,525,555 'replac':214,244,255 'requir':178,630 'review':623 'row':232,283 'rowkey':181,192,264,365,402,409,416,470 'safer':332 'safeti':633 'sale':191,231,263,282,304,325,348,363 'scenario':575 'scope':604 'sdk':8,29 'second':412 'select':352,364 'servic':93,97 'service_client.create':137,144 'service_client.delete':152 'service_client.get':169 'service_client.list':160 'ship':201,267 'skill':580,596 'skill-azure-data-tables-py' 'small':562 'source-sickn33' 'spare':378 'specif':258,353,618 'stop':624 'storag':11,21,41,63,66,496 'store':36 'str':498 'string':499 'structur':38 'substitut':614 'success':636 'tabl':4,7,28,42,46,55,64,72,75,96,104,109,114,125,127,132,136,138,145,151,153,156,158,161,165,167,170,447,456,489,495 'table.core.windows.net':69,92,455 'table.cosmos.azure.com':77 'table.name':163 'table_client.create':207 'table_client.delete':278 'table_client.get':227 'table_client.list':382 'table_client.query':298,319,334,357 'table_client.submit':421 'table_client.update':250,269 'table_client.upsert':215 'tablecli':88,111,128,440,453 'tableservicecli':87,99,123,439 'tabletransactionerror':392,425 'task':600 'test':473,620 'third':419 'throughput':574 'togeth':182 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'transact':422,430 'treat':609 'tri':420 'true':268 'type':120,492,494,497 'uniqu':184 'updat':241,257,261,272 'upsert':211,413,547 'url':68 'use':15,377,536,546,553,568,578,594 'uuid':510 'valid':619 'valu':20,35 'variabl':60 'whenev':528 'widget':196 'within':290,526 'work':106 'workflow':586 'write':551","prices":[{"id":"c0b83ccb-0ade-46dc-bb3f-adceb5fc99a1","listingId":"e3a82bb6-44f4-4846-9cef-9e9643aa773f","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:32:21.637Z"}],"sources":[{"listingId":"e3a82bb6-44f4-4846-9cef-9e9643aa773f","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-data-tables-py","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-data-tables-py","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:21.637Z","lastSeenAt":"2026-04-24T18:50:30.135Z"}],"details":{"listingId":"e3a82bb6-44f4-4846-9cef-9e9643aa773f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-data-tables-py","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"8d62ac39ac790784f710330fd0d080838958e74b","skill_md_path":"skills/azure-data-tables-py/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-data-tables-py"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-data-tables-py","description":"Azure Tables SDK for Python (Storage and Cosmos DB). Use for NoSQL key-value storage, entity CRUD, and batch operations."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-data-tables-py"},"updatedAt":"2026-04-24T18:50:30.135Z"}}