Vytváření a správa řídicích panelů pomocí rozhraní API řídicího panelu

Rozhraní Databricks REST API obsahuje nástroje pro správu speciálně pro správu řídicích panelů AI/BI. Tato stránka ukazuje, jak používat nástroje rozhraní API k vytváření a správě řídicích panelů. Pokud chcete tyto úlohy provádět pomocí uživatelského rozhraní, přečtěte si téma Vytváření řídicích panelů.

Poznámka

Řídicí panely AI/BI se dříve označovaly jako řídicí panely Lakeview. Rozhraní API Lakeview tento název stále uchovává.

Požadavky

Získat návrh řídicího panelu

Pomocí dashboard_id můžete načíst podrobnosti řídicího panelu z konceptu řídicího panelu. Následující ukázkový požadavek a odpověď obsahují podrobnosti o současné verzi rozpracovaného řídicího panelu v pracovním prostoru.

Pole etag sleduje nejnovější verzi řídicího panelu. Tuto možnost můžete použít k ověření verze před provedením dalších aktualizací.

GET /api/2.0/lakeview/dashboards/04aab30f99ea444490c10c85852f216c

Response:

{
  "dashboard_id": "04aab30f99ea444490c10c85852f216c",
  "display_name": "Monthly Traffic Report",
  "path": "/path/to/dir/Monthly Traffic Report.lvdash.json",
  "create_time": "2019-08-24T14:15:22Z",
  "update_time": "2019-08-24T14:15:22Z",
  "warehouse_id": "47bb1c472649e711",
  "etag": "80611980",
  "serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
  "lifecycle_state": "ACTIVE",
  "parent_path": "/path/to/dir"
}

Aktualizace řídicího panelu

Pomocí dashboard_id v předchozí odpovědi můžete aktualizovat nový řídicí panel AI/BI vytvořený touto operací. Následující příklad ukazuje ukázkový požadavek a odpověď. dashboard_id z předchozího příkladu je zahrnuta jako parametr cesty.

display_name a warehouse_id byly změněny. Aktualizovaný řídicí panel má nový název a přiřazený výchozí sklad, jak je znázorněno v odpovědi. Pole etag je volitelné. Pokud verze zadaná v etag neodpovídá aktuální verzi, aktualizace se odmítne.

PATCH /api/2.0/lakeview/dashboards/04aab30f99ea444490c10c85852f216c

Request body:

{
  "display_name": "Monthly Traffic Report 2",
  "warehouse_id": "c03a4f8a7162bc9f",
  "etag": "80611980"
}

Response:

{
  "dashboard_id": "04aab30f99ea444490c10c85852f216c",
  "display_name": "Monthly Traffic Report 2",
  "path": "/path/to/dir/Monthly Traffic Report 2.lvdash.json",
  "create_time": "2019-08-24T14:15:22Z",
  "update_time": "2019-08-24T14:15:22Z",
  "warehouse_id": "c03a4f8a7162bc9f",
  "etag": "80611981",
  "serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
  "lifecycle_state": "ACTIVE",
  "parent_path": "/path/to/dir"
}

Vytvoření řídicího panelu

K přesunu řídicího panelu mezi pracovními prostory můžete použít koncový bod Vytvořit řídicí panel v rozhraní API Lakeview. Následující příklad obsahuje ukázkový text požadavku a odpověď, která vytvoří nový řídicí panel. Klíč serialized_dashboard z předchozího příkladu obsahuje všechny potřebné podrobnosti k vytvoření konceptu duplikátu řídicího panelu.

Ukázka obsahuje novou hodnotu warehouse_id odpovídající skladu v novém pracovním prostoru. Vizte POST /api/2.0/lakeview/dashboards.

POST /api/2.0/lakeview/dashboards

Request body:

{
  "display_name": "Monthly Traffic Report 2",
  "warehouse_id": "5e2f98ab3476cfd0",
  "serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
  "parent_path": "/path/to/dir"
}

Response:

{
  "dashboard_id": "1e23fd84b6ac7894e2b053907dca9b2f",
  "display_name": "Monthly Traffic Report 2",
  "path": "/path/to/dir/Monthly Traffic Report 2.lvdash.json",
  "create_time": "2019-08-24T14:15:22Z",
  "update_time": "2019-08-24T14:15:22Z",
  "warehouse_id": "5e2f98ab3476cfd0",
  "etag": "14350695",
  "serialized_dashboard": "{\"pages\":[{\"name\":\"b532570b\",\"displayName\":\"New Page\"}]}",
  "lifecycle_state": "ACTIVE",
  "parent_path": "/path/to/dir"
}

Jediná požadovaná vlastnost v textu požadavku je display_name. Tento nástroj může kopírovat obsah řídicího panelu nebo vytvářet nové prázdné řídicí panely.

Publikujte řídicí panel

Koncový bod Publikovat řídicí panel můžete použít k publikování řídicího panelu, nastavení přístupových údajů pro uživatele a přepsání hodnoty warehouse_id nastavené v konceptu řídicího panelu. Jako parametr cesty musíte zahrnout UUID řídicího panelu.

Text požadavku nastaví vlastnost embed_credentials na false. Ve výchozím nastavení je embed_credentials nastavena na true. Vkládání přihlašovacích údajů umožňuje uživatelům na úrovni účtu zobrazit data řídicího panelu. Viz Publikování řídicího panelu. Nová hodnota warehouse_id je vynechána, proto publikovaný řídicí panel používá stejný sklad přiřazený konceptuálnímu řídicímu panelu.

POST /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Request body:

{
  "embed_credentials": false
}

Response:

{
  "display_name": "Monthly Traffic Report 2",
  "warehouse_id": "5e2f98ab3476cfd0",
  "embed_credentials": false,
  "revision_create_time": "2019-08-24T14:15:22Z"
}

Publikování řídicího panelu s přihlašovacími údaji služebního účtu

Řídicí panel s vloženými přihlašovacími údaji služebního účtu můžete publikovat tak, že se při volání rozhraní API ověříte pomocí služebního účtu. Když publikujete pomocí tokenu instančního objektu, řídicí panel se publikuje s daty a výpočetními oprávněními instančního objektu a umožní uživatelům bez přímého přístupu k datům zobrazit řídicí panel.

Před publikováním musí mít instanční objekt alespoň oprávnění CAN MANAGE na řídicím panelu, SELECT oprávnění ke všem zdrojům dat používaným na řídicím panelu a oprávnění CAN USE v skladu. Podrobnosti o vytváření instančních objektů a generování tajných kódů OAuth najdete v tématu o instančních objektech a Vytváření přístupu instančního objektu k Azure Databricks pomocí OAuth.

Nejprve se ověřte jako služební principál, abyste získali přístupový token.

POST https://<databricks-instance>/oidc/v1/token

Request body (form-urlencoded):

grant_type=client_credentials&scope=all-apis

Authorization header:

Basic <base64-encoded-client-id:client-secret>

Response:

{
  "access_token": "eyJraWQiOiJkYTA4ZTVjZ...",
  "token_type": "Bearer",
  "expires_in": 3600
}

Potom pomocí přístupového tokenu publikujte řídicí panel s přihlašovacími údaji instančního objektu:

POST /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Authorization header:

Bearer <service-principal-access-token>

Request body:

{
  "embed_credentials": true,
  "warehouse_id": "5e2f98ab3476cfd0"
}

Response:

{
  "display_name": "Monthly Traffic Report 2",
  "warehouse_id": "5e2f98ab3476cfd0",
  "embed_credentials": true,
  "revision_create_time": "2019-08-24T14:15:22Z"
}

Když je embed_credentials nastaveno na true, diváci řídicího panelu používají oprávnění service principalu pro přístup k datům a výpočetním prostředkům. Uživatelé potřebují jenom oprávnění pro přístup k samotnému objektu řídicího panelu. Všechny dotazy řídicího panelu se spouští pomocí identity instančního objektu, takže protokoly auditu zobrazují instanční objekt jako exekutor dotazů.

Získání publikovaného řídicího panelu

Odpověď z GET /api/2.0/lakeview/dashboards/{dashboard_id}/published se podobá odpovědi poskytnuté v předchozím příkladu. dashboard_id je zahrnuto jako parametr cesty.

GET /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Response:

{
  "display_name": "Monthly Traffic Report 2",
  "warehouse_id": "5e2f98ab3476cfd0",
  "embed_credentials": false,
  "revision_create_time": "2019-08-24T14:15:22Z"
}

Zneveřejnit řídicí panel

Koncept řídicího panelu zůstane zachován, když použijete rozhraní Lakeview API pro zrušení publikace řídicího panelu. Tento požadavek odstraní publikovanou verzi řídicího panelu.

Následující příklad používá dashboard_id z předchozího příkladu. Úspěšný požadavek poskytuje stavový kód 200. Neexistuje žádný text odpovědi.

DELETE /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f/published

Panel statistik odpadků

K odeslání konceptu řídicího panelu do koše použijte DELETE /api/2.0/lakeview/dashboards/{dashboard_id}. Řídicí panel je možné obnovit.

Následující příklad používá dashboard_id z předchozího příkladu. Úspěšný požadavek poskytuje stavový kód 200. Neexistuje žádný text odpovědi.

DELETE /api/2.0/lakeview/dashboards/1e23fd84b6ac7894e2b053907dca9b2f

Poznámka

Pokud chcete provést trvalé odstranění, použijte POST /api.2.0/workspace/delete

Další kroky