Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Konektory poskytujú typový prístup z aplikácie Fabric k dátam v iných Fabric položkách. Použite konektor na dotazovanie do lakehouse, skladu, SQL databázy vo Fabric alebo sémantického modelu bez potreby konfigurácie samostatnej dátovej služby.
Podporované konektory
Vyberte konektor podľa položky Fabric a operácií, ktoré vaša aplikácia potrebuje:
| Látka | Typ konektora | Podporované operácie |
|---|---|---|
| Koncový bod analýzy Lakehouse SQL | fabric-sqlanalytics |
read |
| Sklad | fabric-warehouse |
read, create, update, a delete |
| SQL databáza vo Fabric | fabric-sqldatabase |
read, create, update, a delete |
| Sémantický model | fabric-semanticmodel |
executeQuery |
Pre sklady a SQL databázy v Fabric konektoroch konfigurujte len tie operácie, ktoré vaša aplikácia potrebuje. Konektor pre jazerný dom je len na čítanie.
Požiadavky
- Projekt Fabric Apps vytvorený pomocou
npm create @microsoft/rayfin@latestalebo inicializovaný pomocounpx rayfin init. - Pracovný priestor Fabric, ktorý obsahuje položku, ku ktorej sa chcete pripojiť.
- Povolenie na prístup do pracovného priestoru a zdrojovej položky.
- ID pracovného priestoru a ID položky, ktoré nájdete v Fabric URL alebo pomocou príkazu connector search.
Nájdite Fabric položku
Použite na connector search zoznam položiek konkrétneho typu v pracovnom priestore. Nasledujúci príklad uvádza sklady:
npx rayfin connector search --workspace-id <workspace-id> --type fabric-warehouse --json
Nahraďte <workspace-id> ho identifikátorom pracovného priestoru služby Fabric. Ak chcete vyhľadať inú podporovanú položku, zmeňte hodnotu --type . Môžete tiež pridať filter mien:
npx rayfin connector search "sales" --workspace-id <workspace-id> --type fabric-warehouse --json
Skopírujte ID položky z výsledku vyhľadávania.
Pridať konektor
Spustite connector add to z koreňa vášho projektu Fabric Apps. Nasledujúci príklad pridáva skladový konektor len na čítanie s názvom inventory:
npx rayfin connector add --type fabric-warehouse --workspace-id <workspace-id> --item-id <warehouse-item-id> --name inventory --operations read
Použite príslušný typ konektora a operácie pre 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
Príkaz:
- Pridáva konektor do hornej
connectorsčasti vrayfin/rayfin.yml. - Vytvorí konektorové súbory pod .
rayfin/connectors/<connector-name>/ - Vytlačí príkaz zladený
npm installs verziou pre požadované balíky konektorov.
Spustite presný inštalačný príkaz vytlačený CLI. Týmto sa udržiavajú konektorové balíky zarovnané s vašou verziou Rayfin CLI.
Poznámka
Objavovanie schémy je najlepšia snaha. Konektor sa dá pridať aj v prípade, že objavovanie nie je dokončené. Ak CLI zobrazí varovanie pred objavovaním, vyriešte ho skôr, než definujete entity z generovaného metadata.json súboru.
Generovaná konfigurácia využíva delegovanú autentifikáciu. Konfigurácia skladu a sémantického modelu pripomína nasledujúci prí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
Zachovajte hodnotu sémantického modelu version , ktorú generuje CLI.
Konfigurujte konektor entít
Lakehouse, warehouse a SQL databázové konektory zprístupňujú vybrané zdrojové tabuľky ako typované entity. Použite vygenerovaný metadata.json súbor na definovanie iba tabuliek a stĺpcov, ktoré vaša aplikácia potrebuje.
Nasledujúci príklad predpokladá, že vybraný sklad obsahuje tabuľku dbo.Order s menovaným OrderID celočíselným primárnym kľúčom a textovým stĺpcom pomenovaným customerEmail. Nahradte tieto ilustračné názvy a typy hodnotami z generovaných metadát.
Dôležité
Neodvodzujte primárny kľúč z názvu stĺpca. Ak zdrojová tabuľka nemá kľúč, vynechajte primaryKey. Bezkľúčové entity nepodporujú operácie, ktoré adresujú riadok po kľúči.
Vytvorte 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;
}
Potom zaregistrujte entitu v schéme konektora:
// 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žiavajte konzistentný názov konektora, vlastnosť schémy a názov konfigurácie klienta.
Konfigurujte klienta konektorov
Pridajte spojovacie schémy do ConnectorsRayfinClient. Konektory sémantických modelov tiež 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žite API URL a publikovateľný kľúč z vášho projektu Fabric Apps. Zachovajte existujúci prihlasovací tok aplikácie. Vytvorenie klienta neznamená prihlásenie používateľa.
Dotaz na prepojené dáta
Po prihlásení používateľa pristupujte k entity connector cez jeho meno a entitu:
const orders = await client.connectors.inventory.Order
.select(['orderId', 'customerEmail'])
.first(20)
.execute();
Vyberte stĺpce explicitne a obmedzte počet vrátených riadkov.
Pre sémantický model odošlite DAX dotaz 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 ju tabuľkou vo vašom sémantickom modeli. Pred použitím výsledku skontrolujte stav vrátenia.
Prístup cez zabezpečený konektor
Používajte tieto ovládacie prvky spolu:
- Obmedzte operácie konektora na
rayfin.ymlakcie, ktoré aplikácia potrebuje. - Pridajte
@roledeklarácie k entitám konektora, aby ste kontrolovali, ktorí prihlásení používatelia môžu vykonávať jednotlivé operácie. - Pridajte riadkové politiky alebo polia, zahrňte a vylučujte pravidlá, keď používatelia potrebujú prístup len k časti entity.
- Nechajte delegovanú autentifikáciu zapnutú, aby požiadavky na konektor využívali prístup prihláseného používateľa.
Typy TypeScriptov na strane klienta zlepšujú bezpečnosť vývoja, ale nie sú hranicou autorizácie. Vynuťte prístup v konfigurácii konektora a rolách entít.
Nasadiť konektor
Nasadenie aplikácie a konfigurácie konektora:
npx rayfin up
Otestujte nasadenú aplikáciu s používateľom, ktorý má očakávané oprávnenia na aplikáciu Fabric aj na pripojenej položke.