Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Konektory poskytují typový přístup z aplikace Fabric k datům v dalších položkách Fabric. Pomocí konektoru se můžete dotazovat na lakehouse, datový sklad, databázi SQL ve službě Fabric nebo sémantický model, aniž byste museli konfigurovat samostatnou datovou službu.
Podporované konektory
Vyberte konektor podle položky Fabric a operací, které vaše aplikace potřebuje:
| Textilní položka | Typ konektoru | Podporované operace |
|---|---|---|
| Koncový bod analýzy SQL Lakehouse | fabric-sqlanalytics |
read |
| warehouse | fabric-warehouse |
read, create, update a delete |
| SQL databáze v prostředí Fabric | fabric-sqldatabase |
read, create, update a delete |
| Sémantický model | fabric-semanticmodel |
executeQuery |
Pro sklad a SQL databáze v Fabric konektorech konfigurujte pouze ty operace, které vaše aplikace potřebuje. Konektor Lakehouse je pouze pro čtení.
Předpoklady
- Projekt Fabric Apps vytvořený pomocí
npm create @microsoft/rayfin@latestnebo inicializovaný pomocínpx rayfin init. - Pracovní prostor Fabric, který obsahuje položku, ke které se chcete připojit.
- Oprávnění k přístupu k pracovnímu prostoru a zdrojovému předmětu.
- ID pracovního prostoru a ID položky, které najdete v Fabric URL nebo pomocí příkazu connector search.
Najdi předmět Fabric
Pomocí connector search vypíšete položky určitého typu v pracovním prostoru. Následující příklad uvádí sklady:
npx rayfin connector search --workspace-id <workspace-id> --type fabric-warehouse --json
Nahraďte <workspace-id> ID pracovního prostoru Fabric. Pro vyhledávání jiné podporované položky změňte hodnotu --type . Můžete také přidat filtr jmen:
npx rayfin connector search "sales" --workspace-id <workspace-id> --type fabric-warehouse --json
Zkopírujte ID položky z výsledků vyhledávání.
Přidání konektoru
Spusťte connector add v kořenovém adresáři projektu Fabric Apps. Následující příklad přidává skladový konektor pouze pro čtení s názvem inventory:
npx rayfin connector add --type fabric-warehouse --workspace-id <workspace-id> --item-id <warehouse-item-id> --name inventory --operations read
Použijte odpovídající typ konektoru a operace pro ostatní položky Fabric:
# Lakehouse SQL analytics endpoint
npx rayfin connector add --type fabric-sqlanalytics --workspace-id <workspace-id> --item-id <lakehouse-item-id> --name analytics --operations read
# SQL database in Fabric
npx rayfin connector add --type fabric-sqldatabase --workspace-id <workspace-id> --item-id <sql-database-item-id> --name operational --operations read
# Semantic model
npx rayfin connector add --type fabric-semanticmodel --workspace-id <workspace-id> --item-id <semantic-model-item-id> --name salesModel --operations executeQuery
Příkaz:
- Přidá konektor do sekce nejvyšší úrovně
connectorsvrayfin/rayfin.yml. - Vytvoří konektorové soubory pod .
rayfin/connectors/<connector-name>/ - Vypíše příkaz odpovídající verzi
npm installpro požadované balíčky konektorů.
Spusťte přesný instalační příkaz, který vypíše CLI. Tím se balíčky konektorů udržují ve verzi odpovídající vaší verzi Rayfin CLI.
Poznámka:
Objevování schémat je nejlepší pokus. Konektor lze přidat i v případě, že objevování není dokončeno. Pokud CLI zobrazí varování před objevováním, vyřešte ho dříve, než definujete entity z generovaného metadata.json souboru.
Generovaná konfigurace využívá delegovanou autentizaci. Konfigurace skladového a sémantického modelu připomíná následující příklad:
connectors:
- name: inventory
type: fabric-warehouse
config:
workspaceId: "<workspace-id>"
itemId: "<warehouse-item-id>"
auth:
type: delegated
operations:
- name: read
- name: salesModel
type: fabric-semanticmodel
config:
workspaceId: "<workspace-id>"
itemId: "<semantic-model-item-id>"
auth:
type: delegated
version: "1"
operations:
- name: executeQuery
Zachovejte hodnotu sémantického modelu version , kterou generuje CLI.
Konfigurace konektoru entit
Lakehouse, warehouse a SQL databázové konektory zpřístupňují vybrané zdrojové tabulky jako typované entity. Použijte vygenerovaný metadata.json soubor k definování pouze tabulek a sloupců, které vaše aplikace potřebuje.
Následující příklad předpokládá, že vybraný sklad obsahuje tabulku dbo.Order s pojmenovaným OrderID celočíselným primárním klíčem a textovým sloupcem jménem customerEmail. Nahraďte tyto ilustrativní názvy a typy hodnotami z generovaných metadat.
Important
Neodvozujte primární klíč z názvu sloupce. Pokud zdrojová tabulka nemá klíč, vynechte primaryKey. Bezklíčové entity nepodporují operace, které by řešily řádek podle klíče.
Vytvořte entitu:
// rayfin/connectors/inventory/Order.ts
import { entity, int, text, role } from '@microsoft/rayfin-core';
import { Source } from '@microsoft/rayfin-connectors';
@role('authenticated', ['read'])
@entity()
export class Order extends Source({
schema: 'dbo',
table: 'Order',
primaryKey: ['orderId'],
}) {
@int({ column: 'OrderID' }) orderId!: number;
@text() customerEmail!: string;
}
Poté entitu zaregistrujte v schématu konektoru:
// rayfin/connectors/inventory/schema.ts
import type { GraphQLBackedConnector } from '@microsoft/rayfin-connector-fabric-graphql';
import type { ConnectorConfig } from '@microsoft/rayfin-connectors';
import { Order } from './Order.js';
export { Order } from './Order.js';
export const connectorConfig = {
connector: 'fabric-warehouse',
operations: ['read'],
entities: { Order },
} as const satisfies ConnectorConfig;
export type InventorySchema = GraphQLBackedConnector<
{ Order: typeof Order },
typeof connectorConfig
>;
Udržujte konzistentní název konektoru, vlastnosti schématu a název konfigurace klienta.
Konfigurujte klienta konektorů
Přidejte schémata konektorů do ConnectorsRayfinClient. Konektory sémantických modelů také vyžadují fabricSemanticModel() runtime:
// src/lib/connectors.ts
import { ConnectorsRayfinClient } from '@microsoft/rayfin-client';
import { fabricSemanticModel } from '@microsoft/rayfin-connector-fabric-semanticmodel';
import {
connectorConfig as inventoryConfig,
type InventorySchema,
} from '../../rayfin/connectors/inventory/schema.js';
import {
connectorConfig as salesModelConfig,
type SalesModelSchema,
} from '../../rayfin/connectors/salesModel/schema.js';
type AppConnectorsSchema = {
inventory: InventorySchema;
salesModel: SalesModelSchema;
};
export const client = new ConnectorsRayfinClient<
Record<string, never>,
Record<string, never>,
AppConnectorsSchema
>(
{
baseUrl: '<app-api-url>',
publishableKey: '<publishable-key>',
authStorage: true,
connectors: {
inventory: inventoryConfig,
salesModel: salesModelConfig,
},
},
{
salesModel: fabricSemanticModel(),
}
);
Použijte API URL a publikovatelný klíč z vašeho projektu Fabric Apps. Zachovejte stávající přihlašovací tok aplikace. Vytvoření klienta nepřihlásí uživatele.
Dotazování propojených dat
Po přihlášení uživatele můžete ke konektoru entity přistupovat pomocí jeho názvu a entity:
const orders = await client.connectors.inventory.Order
.select(['orderId', 'customerEmail'])
.first(20)
.execute();
Vyberte sloupce explicitně a omezte počet vrácených řádků.
Pro sémantický model odešlete dotaz DAX s :executeQuery
const result = await client.connectors.salesModel.executeQuery({
query: 'EVALUATE TOPN(10, Sales)',
});
if (result.status === 'success') {
console.log(result.table.columns, result.table.rows);
} else {
console.error(result.error.category, result.error.message);
}
Nahraďte Sales ji tabulkou ve svém sémantickém modelu. Před použitím výsledku zkontrolujte stav vrácených údajů.
Přístup přes zabezpečený konektor
Používejte tyto ovládací prvky společně:
- Omezte operace konektoru v
rayfin.ymlpouze na akce, které aplikace potřebuje. - Přidejte
@roledeklarace ke spojovacím entitám, které určují, kteří přihlášení uživatelé mohou provádět jednotlivé operace. - Přidejte řádkové politiky nebo pole, zahrňte a vylučujte pravidla, když uživatelé potřebují přístup pouze k části entity.
- Nechte zapnuté delegované ověřování, aby požadavky na propojení využívaly přístup přihlášeného uživatele.
Typy TypeScriptů na straně klienta zvyšují bezpečnost vývoje, ale nejsou hranicí autorizace. Vynuťte přístup v konfiguraci konektoru a rolích entit.
Nasazení konektoru
Nasazení aplikace a konfigurace konektoru:
npx rayfin up
Otestujte nasazenou aplikaci s uživatelem, který má očekávaná oprávnění jak na aplikaci Fabric, tak na připojeném zařízení.