fabric-cli

item examples

Type: .<item_type>, e.g. .Notebook

Supported commands: fab desc .<item_type>. See all item extensions.

See also:

Navigate to an item using the cd command. You can use relative or absolute paths based on current context. Navigating to item folders not supported - see managing OneLake.

# use absolute path
fab:/ws1.Workspace/nb1.Notebook$ cd /ws1.workspace/lh1.Lakehouse
* Switched to 'lh1.Lakehouse'

# use relative path
fab:/ws1.Workspace/nb1.Notebook$ cd ../lh1.Lakehouse
* Switched to 'lh1.Lakehouse'

Copying an item to a workspace

Copy an item to a workspace (same or different workspace). Use -f (force flag) to override confirmation prompts, overwrite the item if already exists, and copy the item definition without its sensitivity label.

Note:

# same workspace
fab:/ws1.Workspace$ cp nb1.Notebook cp_nb1.Notebook
fab:/ws1.Workspace$ cp sj1.SparkJobDefinition cp_sj1.SparkJobDefinition
fab:/ws1.Workspace$ cp pip1.DataPipeline cp_pip1.DataPipeline
fab:/ws1.Workspace$ cp rep1.Report cp_rep1.Report
fab:/ws1.Workspace$ cp sem1.SemanticModel cp_sem1.SemanticModel
fab:/ws1.Workspace$ cp kqldb1.KQLDatabase cp_kqldb1.KQLDatabase
fab:/ws1.Workspace$ cp kqldh1.KQLDashboard cp_kqldh1.KQLDashboard
fab:/ws1.Workspace$ cp kqlqs1.KQLQueryset cp_kqlqs1.KQLQueryset
fab:/ws1.Workspace$ cp eh1.Eventhouse cp_eh1.Eventhouse
fab:/ws1.Workspace$ cp evs1.Eventstream cp_evs1.Eventstream
fab:/ws1.Workspace$ cp mir1.MirroredDatabase cp_mir1.MirroredDatabase
fab:/ws1.Workspace$ cp ref1.Reflex cp_ref1.Reflex
fab:/ws1.Workspace$ cp adf1.MountedDataFactory cp_adf1.MountedDataFactory
fab:/ws1.Workspace$ cp cj1.CopyJob cp_cj1.CopyJob
fab:/ws1.Workspace$ cp var1.VariableLibrary cp_var1.VariableLibrary

# different workspace (use relative or absolute paths)
fab:/ws1.Workspace$ cp nb1.Notebook /ws2.Workspace/cp_nb1.Notebook

Checking if an item exists

Verify if an item exists.

fab:/$ exists ws1.Workspace/nb1.Notebook
* true

fab:/$ exists ws1.Workspace/nb1_.Notebook
* false

Exporting an item to Local

Export an item to a local directory. Only items with supporting definitions are included. Use -f (force flag) to override confirmation prompts, export the item definition without its sensitivity label.

Note: When you export item definition, the sensitivity label is not a part of the definition.

Exportable items:

# export individual items
fab:/ws1.Workspace$ export nb1.Notebook -o /tmp

Exporting an item to Lakehouse

Export an item to Lakehouse/Files (use relative or absolute paths). Use -f (force flag) to override confirmation prompts, export the item definition without its sensitivity label.

Note: When you export item definition, the sensitivity label is not a part of the definition.

# export to lakehouse
fab:/ws1.Workspace$ export nb1.Notebook -o /ws1.Workspace/lh1.Lakehouse/Files/export1

Getting and querying item details

Retrieve and query item details with -q (JMESPath query). Output the result to a local path or Lakehouse/Files with -o. Use v to show all JSON properties (e.g. for reports). Use -f (force flag) to override confirmation prompts, get the item definition without its sensitivity label.

Note: When you get item definition, the sensitivity label is not a part of the definition.

Unsupported items:

# get JSON properties
fab:/ws1.Workspace$ get lh1.Lakehouse

# get all JSON properties
fab:/ws1.Workspace$ get rep1.Report -v

# query using JMESPath
fab:/ws1.Workspace$ get lh1.Lakehouse -q properties.sqlEndpointProperties

# export query result
fab:/ws1.Workspace$ get lh1.Lakehouse -q properties.sqlEndpointProperties -o /tmp

Importing an item (from Local) to a workspace

Import an item into a workspace. Items supported by import are the same as the exportable items, except for Environment. Use -f to force, it will overwrite if the item already exists. Use --format to import a notebok in .py format (.ipynb by default).

# import individual items
fab:/ws1.Workspace$ import nb1_i.Notebook -i /tmp/export1/nb1.Notebook -f
fab:/ws1.Workspace$ import sjd1_i.SparkJobDefinition -i /tmp/export1/sjd1.SparkJobDefinition -f
fab:/ws1.Workspace$ import pip1_i.DataPipeline -i /tmp/export1/pip1.DataPipeline -f
fab:/ws1.Workspace$ import rep1_i.Report -i /tmp/export1/rep1.Report -f
fab:/ws1.Workspace$ import sem1_i.SemanticModel -i /tmp/export1/sem1.SemanticModel -f
fab:/ws1.Workspace$ import kqldb1_i.KQLDatabase -i /tmp/export1/kqldb1.KQLDatabase -f
fab:/ws1.Workspace$ import kqlqs1_i.KQLQueryset -i /tmp/export1/kqlqs1.KQLQueryset -f
fab:/ws1.Workspace$ import kqldh1_i.KQLDashboard -i /tmp/export1/kqldh1.KQLDashboard -f
fab:/ws1.Workspace$ import evh1_i.Eventhouse -i /tmp/export1/evh1.Eventhouse -f
fab:/ws1.Workspace$ import evs1_i.Eventstream -i /tmp/export1/evs1.Eventstream -f
fab:/ws1.Workspace$ import mir1_i.MirroredDatabase -i /tmp/export1/mir1.MirroredDatabase -f
fab:/ws1.Workspace$ import ref1_i.Reflex -i /tmp/export1/ref1.Reflex -f
fab:/ws1.Workspace$ import adf1_i.MountedDataFactory -i /tmp/export1/adf1.MountedDataFactory -f
fab:/ws1.Workspace$ import cj1_i.CopyJob -i /tmp/export1/cj1.CopyJob -f
fab:/ws1.Workspace$ import var1_i.VariableLibrary -i /tmp/export1/var1.VariableLibrary -f
fab:/ws1.Workspace$ import env1_i.Environment -i /tmp/export1/env1.Environment -f

Note: some items with dependencies may not work as expected. In such cases, export the item, modify its metadata, and then re-import the updated item.

Listing items

List items in a workspace. Use -l for details. See also listing OneLake files and folder.

Items currently using OneLake (*requires explicit enablement):

# list items in a workspace
fab:/ws1.Workspace$ ls 
fab:/ws1.Workspace$ ls -l

# list item folders
fab:/ws1.Workspace$ ls lh1.Lakehouse
fab:/ws1.Workspace$ ls wh1.Warehouse
fab:/ws1.Workspace$ ls mir1.MirroredDatabase
fab:/ws1.Workspace$ ls sql1.SQLDatabase
fab:/ws1.Workspace$ ls sem1.SemanticModel
fab:/ws1.Workspace$ ls kql1.KQLDatabase

Creating items

Create an item. Use mkdir test.<item_type> -P to view supported custom parameters. Parameters are case insensitive.

Items with required parameters:

Items supporting optional parameters:

Unsupported items for creation:

# check available parameters
fab:/ws1.Workspace$ create lh2.Lakehouse -P

# [parameters] schema-enabled Lakehouse
fab:/ws1.Workspace$ create lh2.Lakehouse -P enableschemas=true

# [parameters] readwrite KQLDatabase
fab:/ws1.Workspace$ create kqldb2.KQLDatabase -P dbtype=readwrite,eventhouseid=a3037e94-7bbb-4311-9031-ffc2c7be2f36

# [parameters] shortcut KQLDatabase
fab:/ws1.Workspace$ create kqldb2.KQLDatabase -P dbtype=shortcut,eventhouseid=a3037e94-7bbb-4311-9031-ffc2c7be2f36,clusterUri=<clusterUri>,databaseName=<dbName>

# [parameters] case-insensitive collation Warehouse
fab:/ws1.Workspace$ create wh2.Warehouse -P enableCaseInsensitive=true

# [parameters] AzureSQL MirroredDatabase 
fab:/ws1.Workspace$ create mir2.MirroredDatabase -P mirrortype=azuresql,connectionid=8b9129e8-dec0-43a8-938c-6653f32988e2

# [parameters] AzureSQL MirroredDatabase 
fab:/ws1.Workspace$ create mir2.MirroredDatabase -P mirrortype=azuresql,connectionid=8b9129e8-dec0-43a8-938c-6653f32988e2,mountedtables=dbo.table1,dbo.table2

# [parameters] CosmosDB MirroredDatabase 
fab:/ws1.Workspace$ create mir2.MirroredDatabase -P mirrortype=CosmosDb,connectionid=8b9129e8-dec0-43a8-938c-6653f32988e2,database=dbname

# [parameters] create a report linked to a SemanticModel
fab:/ws1.Workspace$ create rep1.Report -P semanticModelId=01b11be6-837a-4aa9-9354-3048bf2f79d8

# [parameters] create a MountedDataFactory
fab:/ws1.Workspace$ create adf1.MountedDataFactory -P subscriptionId=b1cd297b-e573-490f-ae53-1b8a08014127,resourceGroup=rg-fab-cli,factoryName=adf-fab-cli-1

# create items without parameters
fab:/ws1.Workspace$ create cj1.CopyJob
fab:/ws1.Workspace$ create pip1.DataPipeline
fab:/ws1.Workspace$ create env1.Environment
fab:/ws1.Workspace$ create evh1.Eventhouse
fab:/ws1.Workspace$ create evs1.Eventstream
fab:/ws1.Workspace$ create kqld1.KQLDashboard
fab:/ws1.Workspace$ create kqldb1.KQLDatabase
fab:/ws1.Workspace$ create kqlqs1.KQLQueryset
fab:/ws1.Workspace$ create lh1.Lakehouse
fab:/ws1.Workspace$ create mlexp1.MLExperiment
fab:/ws1.Workspace$ create mlmod1.MLModel
fab:/ws1.Workspace$ create mirdb1.MirroredDatabase
fab:/ws1.Workspace$ create nb1.Notebook
fab:/ws1.Workspace$ create ref1.Reflex
fab:/ws1.Workspace$ create rep1.Report
fab:/ws1.Workspace$ create sem1.SemanticModel
fab:/ws1.Workspace$ create sjd1.SparkJobDefinition
fab:/ws1.Workspace$ create sql1.SQLDatabase
fab:/ws1.Workspace$ create var1.VariableLibrary
fab:/ws1.Workspace$ create wh1.Warehouse

Moving an item to a workspace

Move an item to a workspace (same or different workspace). Use -f (force flag) to override confirmation prompts, overwrite the item if already exists, and move the item definition without its sensitivity label.

Note:

# same workspace
fab:/ws1.Workspace$ mv nb1.Notebook mv_nb1.Notebook
fab:/ws1.Workspace$ mv sj1.SparkJobDefinition mv_sj1.SparkJobDefinition
fab:/ws1.Workspace$ mv pip1.DataPipeline mv_pip1.DataPipeline
fab:/ws1.Workspace$ mv rep1.Report mv_rep1.Report
fab:/ws1.Workspace$ mv sem1.SemanticModel mv_sem1.SemanticModel
fab:/ws1.Workspace$ mv kqldh1.KQLDashboard mv_kqldh1.KQLDashboard
fab:/ws1.Workspace$ mv kqlqs1.KQLQueryset mv_kqlqs1.KQLQueryset
fab:/ws1.Workspace$ mv mir1.MirroredDatabase mv_mir1.MirroredDatabase
fab:/ws1.Workspace$ mv ref1.Reflex mv_ref1.Reflex
fab:/ws1.Workspace$ mv adf1.MountedDataFactory mv_adf1.MountedDataFactory
fab:/ws1.Workspace$ mv cj1.CopyJob mv_cj1.CopyJob
fab:/ws1.Workspace$ mv var1.VariableLibrary mv_var1.VariableLibrary

# different workspace (use relative or absolute paths)
fab:/ws1.Workspace$ mv nb1.Notebook /ws2.Workspace/mv_nb1.Notebook

Opening an item in the web browser

Open an item in the web browser. Item directories are not supported.

fab:/$ open ws1.Workspace/lh1.Lakehouse
Opening 'lh1.Lakehouse' in the web browser...

Removing an item

Remove an item. Use -f to force.

Unsupported items for deletion:

fab:/ws1.Workspace$ rm nb2.Notebook
fab:/ws1.Workspace$ rm lh2.Lakehouse -f

Note: do not delete the item, but delete the parent if a KQLDatabase or SemanticModel has one.

Setting and updating item properties

Set item properties. All items supporting the get command allow setting displayName and description. For item-specific properties, see below. Use -f to force updates. Properties are case sensitive.

# rename items
fab:/ws1.Workspace$ set nb2.Notebook -q displayName -i nb2ren
fab:/ws1.Workspace$ set lh2.Lakehouse -q displayName -i lh2ren

# set description 
fab:/ws1.Workspace$ set nb2ren.Notebook -q description -i "my desc" -f
fab:/ws1.Workspace$ set lh2ren.Lakehouse -q description -i "my desc" -f

# [report] rebind to a semantic model
fab:/ws1.Workspace$ set rep1.Report -q semanticModelId -i 7b0ae03b-563d-42a2-8fd3-c655fa468dfe

# [notebook] rebind or set a default lakehouse
fab:/ws1.Workspace$ set nb1.Notebook -q lakehouse -i {"known_lakehouses": [{"id": "82549658-98f4-405f-be96-96c3ad75054f"}],"default_lakehouse": "82549658-98f4-405f-be96-96c3ad75054f","default_lakehouse_name": "lh1a","default_lakehouse_workspace_id": "762811e8-e364-4817-9557-f2ca363661cb"} -f

# [notebook] rebind or set a default environment
fab:/ws1.Workspace$ set nb1.Notebook -q environment -i {"environmentId": "fc238f0f-18de-457f-87d1-8aa0b825ae95", "workspaceId": "762811e8-e364-4817-9557-f2ca363661cb"} -f

# [notebook] rebind or set a default warehouse
fab:/ws1.Workspace$ set nb1.Notebook -q warehouse -i {"known_warehouses": [{"id": "16871e76-cb30-437f-a41f-2747cf145b8a", "type": "Datawarehouse"}], "default_warehouse": "16871e76-cb30-437f-a41f-2747cf145b8a"} -f

Starting a mirrored database

Start a .MirroredDatabase synchronously. Use -f to force.

fab:/ws1.Workspace$ start mir1.MirroredDatabase 
? Are you sure? Yes
Starting 'mir1.MirroredDatabase'...
* 'mir1.MirroredDatabase' started

fab:/ws1.Workspace$ start mir1.MirroredDatabase -f
! Executing force start
Starting 'mir1.MirroredDatabase'...
* 'mir1.MirroredDatabase' started

Stopping a mirrored database

Stop a .MirroredDatabase synchronously. Use -f to force.

fab:/ws1.Workspace$ stop mir1.MirroredDatabase
? Are you sure? Yes
Stopping 'mir1.MirroredDatabase'...
* 'mir1.MirroredDatabase' stopped

fab:/ws1.Workspace$ stop mir1.MirroredDatabase -f
! Executing force stop
Stopping 'mir1.MirroredDatabase'...
* 'mir1.MirroredDatabase' stopped

See all examples