AzureStorage.Tables
Accessing DataReturns a navigation table of Azure Table Storage tables from the specified storage account.
Syntax
AzureStorage.Tables(account as text, optional options as nullable record) as tableParameters
| Name | Type | Required | Description |
|---|---|---|---|
account | text | Yes | The Azure Storage account name (e.g., "mystorageaccount") or the full Table service URL (e.g., "https://mystorageaccount.table.core.windows.net"). |
options | record | No | An optional record with additional connection options. |
Return Value
table — A navigation table where each row represents an Azure Table Storage table, with a Data column containing the table's entities as a Power Query table.
Remarks
AzureStorage.Tables connects to Azure Table Storage and returns a navigation table listing all tables in the storage account. Each table's entities are accessible by drilling into the Data column of the corresponding row. Azure Table Storage is a NoSQL, schema-less key-value store — unlike relational databases, each entity may have a different set of properties. However, every entity shares the three system properties: PartitionKey, RowKey, and Timestamp.
Navigation table and entity columns: The top-level result has one row per table, with Name and Data columns. Drilling into Data returns a table of entities where every row has at minimum:
- PartitionKey (text) — the logical partition identifier. Entities with the same PartitionKey are stored together and can be queried efficiently.
- RowKey (text) — unique identifier for the entity within its partition. The combination of PartitionKey + RowKey uniquely identifies every entity.
- Timestamp (datetimezone) — the last-modified timestamp, maintained automatically by Azure.
- Additional application-defined columns vary by entity and may not be present on all rows.
Authentication: Supports Account Key (storage account name + access key) and Shared Access Signature (SAS). Configure credentials in the Power Query data source settings dialog. Azure Active Directory (Entra ID) authentication is available in recent versions of Power BI Desktop. Use the storage account name or service URL as the credential scope.
Query folding: Limited. Equality filters on PartitionKey and RowKey can fold to the Azure Table Storage REST API, significantly reducing the data returned. Other filter conditions and column selections are applied in Power Query after retrieval. For workloads that require heavy filtering, consider using OData.Feed against the Table Storage OData endpoint (https://mystorageaccount.table.core.windows.net) for finer control over $filter parameters.
Pagination: Azure Table Storage returns at most 1,000 entities per API request. Power Query automatically follows continuation tokens to retrieve all entities from large tables.
Power BI Service: Direct cloud refresh is supported when using Account Key or SAS authentication and the storage account is network-accessible. For storage accounts behind firewalls or private endpoints, use a VNet gateway or managed identity.
Examples
Example 1: List all tables in a storage account
```powerquery
AzureStorage.Tables("mystorageaccount")Example 2: Connect using the full Table service URL
```powerquery
AzureStorage.Tables("https://mystorageaccount.table.core.windows.net")Example 3: Read all entities from a specific table
```powerquery
let
Account = AzureStorage.Tables("mystorageaccount"),
SalesTable = Account{[Name="Sales"]}[Data]
in
SalesTableExample 4: Filter entities by PartitionKey to leverage server-side folding
```powerquery
let
Account = AzureStorage.Tables("mystorageaccount"),
Events = Account{[Name="Events"]}[Data],
NorthAmerica = Table.SelectRows(Events, each [PartitionKey] = "NorthAmerica")
in
NorthAmerica