Fabric Analytics SDK

0.0.3.post1 · active · verified Sat Apr 11

The Fabric Analytics SDK for Python provides programmatic access to Microsoft Fabric Analytics services. It allows interaction with datasets, lakehouses, and warehouses within Fabric. The current version is 0.0.3.post1. Given its early 0.0.x versioning and the release patterns typical for new Microsoft SDKs, frequent updates and potential breaking changes are expected.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize the Fabric Analytics client using `DefaultAzureCredential` and retrieve basic information about a Fabric item (like a Lakehouse) within a specified workspace. It also shows how to list items in a workspace. Remember to replace placeholder IDs or set them as environment variables and ensure proper Azure authentication and Fabric permissions.

import os
from fabric_analytics.analytics_client import AnalyticsClient
from azure.identity import DefaultAzureCredential
from azure.core.exceptions import ResourceNotFoundError

# IMPORTANT: Ensure your environment is configured for Azure authentication.
# For local development, set environment variables like AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET
# or use Azure CLI/VS Code login. More info: https://learn.microsoft.com/en-us/azure/developer/python/authentication/managed-identity-sdk-azure-cli

try:
    # Initialize DefaultAzureCredential. It attempts various authentication methods.
    credential = DefaultAzureCredential()

    # Replace with your actual Fabric workspace ID and item ID.
    # For a runnable example, ensure these environment variables are set.
    workspace_id = os.environ.get("FABRIC_WORKSPACE_ID", "<YOUR_FABRIC_WORKSPACE_ID>")
    item_id = os.environ.get("FABRIC_ITEM_ID", "<YOUR_FABRIC_ITEM_ID>")
    item_type = os.environ.get("FABRIC_ITEM_TYPE", "Lakehouse") # e.g., "Lakehouse", "Warehouse", "Dataset"

    if workspace_id == "<YOUR_FABRIC_WORKSPACE_ID>" or item_id == "<YOUR_FABRIC_ITEM_ID>":
        print("Please set FABRIC_WORKSPACE_ID and FABRIC_ITEM_ID environment variables, or replace placeholders in the code.")
        exit(1)

    client = AnalyticsClient(credential=credential)

    print(f"Attempting to get item: {item_id} of type {item_type} in workspace {workspace_id}")
    # Example: Get a specific Fabric item (e.g., Lakehouse, Warehouse, Dataset)
    item_info = client.get_item(workspace_id=workspace_id, item_id=item_id, item_type=item_type)
    print(f"Successfully retrieved item: {item_info.display_name} (ID: {item_info.id})")
    print(f"Description: {item_info.description or 'No description'}")

    # Example: List items in a workspace
    print(f"\nListing first 3 items in workspace {workspace_id}:")
    items_list_response = client.list_items(workspace_id=workspace_id)
    if items_list_response.value:
        for i, item in enumerate(items_list_response.value):
            if i >= 3:
                break
            print(f"- {item.display_name} (Type: {item.type}, ID: {item.id})")
    else:
        print("No items found or insufficient permissions.")

except ResourceNotFoundError as e:
    print(f"Error: Resource not found. Please check workspace ID, item ID, item type, and permissions. Details: {e}")
except Exception as e:
    print(f"An unexpected error occurred: {e}")
    print("Ensure your Azure environment is set up correctly and you have sufficient permissions in Fabric.")

view raw JSON →