[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EXHQFVKY2ZD7TVVDVHZ1MS":3,"skill-same:01M6EXHQFVKY2ZD7TVVDVHZ1MS":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6EXHQFVKY2ZD7TVVDVHZ1MS","azure-data-tables-py",null,"Azure Tables SDK for Python (Storage and Cosmos DB). Use for NoSQL key-value storage, entity CRUD, and batch operations.\nTriggers: \"table storage\", \"TableServiceClient\", \"TableClient\", \"entities\", \"PartitionKey\", \"RowKey\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-data-tables-py\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"azure","azure data tables py","data","python","sdk","storage","batch","nosql","crud","table","operations","use","db","triggers","cosmos","2026-11-10 10:12:30",false,"---\nname: azure-data-tables-py\ndescription: |\n  Azure Tables SDK for Python (Storage and Cosmos DB). Use for NoSQL key-value storage, entity CRUD, and batch operations.\n  Triggers: \"table storage\", \"TableServiceClient\", \"TableClient\", \"entities\", \"PartitionKey\", \"RowKey\".\npackage: azure-data-tables\n---\n\n# 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:\u002F\u002F\u003Caccount>.table.core.windows.net\n\n# Cosmos DB Table API\nCOSMOS_TABLE_ENDPOINT=https:\u002F\u002F\u003Caccount>.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:\u002F\u002F\u003Caccount>.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\u002Fdelete 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:\u002F\u002F\u003Caccount>.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","# 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:\u002F\u002F\u003Caccount>.table.core.windows.net\n\n# Cosmos DB Table API\nCOSMOS_TABLE_ENDPOINT=https:\u002F\u002F\u003Caccount>.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:\u002F\u002F\u003Caccount>.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\u002Fdelete 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:\u002F\u002F\u003Caccount>.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",{"name":5,"package":44,"description":45},"azure-data-tables","Azure Tables SDK for Python (Storage and Cosmos DB). Use for NoSQL key-value storage, entity CRUD, and batch operations.\nTriggers: \"table storage\", \"TableServiceClient\", \"TableClient\", \"entities\", \"PartitionKey\", \"RowKey\".\n","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-data-tables-py",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill azure-data-tables-py",{"tool":61,"command":62},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill azure-data-tables-py",{"tool":64,"command":65},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill azure-data-tables-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-data-tables-py\u002FSKILL.md",true,[69],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"skill-report.json","REFERENCE","参考文档",8815,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-data-tables-py\u002Fskill-report.json",[76,90,100,108,114,121],{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":86,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[87,88,89],"model","model hierarchy","model hierarchy skill",{"skillNo":91,"name":92,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":96,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[95],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},[97,98,99],"MCP","zoom","zoom mcp",{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[28,106,107,98],"zoom apps sdk","apps",{"skillNo":109,"name":110,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[110],{"skillNo":115,"name":116,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[119],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},[116],{"skillNo":122,"name":123,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[123]]