> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prophecy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an Azure Synapse fabric

> Set up an Azure Synapse fabric

<Callout icon="/images/icon.png" color="#FFC107">
  Available for [Enterprise Edition](/data-engineering/administration/platform/editions) only.
</Callout>

In the context of Spark execution engines, users have the flexibility to opt for Azure Synapse Analytics while utilizing Prophecy. Use this step-by-step guide on creating a fabric to connect to the Azure Synapse Workspace via Livy.

Feel free to explore the following sections to gain insights into the integration of Azure Synapse Analytics with Prophecy.

## An existing Azure Synapse Analytics environment

A properly configured Azure Synapse Analytics environment is required before configuring a Synapse fabric on Prophecy. Prophecy configurations include the following:

1. A Synapse workspace with proper security configured. If you don't have an existing workspace, you may deploy one from the [Azure Marketplace](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft.synapse?tab=overview).
   <img src="https://mintcdn.com/prophecy-62973bd0/noSvxSYkIPZNsTzk/data-engineering/fabrics/spark-provider/img/workspaceiam.png?fit=max&auto=format&n=noSvxSYkIPZNsTzk&q=85&s=ba245a78c55b6a8c7704cbcaa911ec2f" alt="Synapse security" width="3390" height="1428" data-path="data-engineering/fabrics/spark-provider/img/workspaceiam.png" />

2. Deploy a Synapse Spark Pool if one doesn't already exist.
   <img src="https://mintcdn.com/prophecy-62973bd0/noSvxSYkIPZNsTzk/data-engineering/fabrics/spark-provider/img/sparkpool.png?fit=max&auto=format&n=noSvxSYkIPZNsTzk&q=85&s=44398cad29abf5ae6a0090baf68f32fb" alt="Synapse pool" width="1526" height="1436" data-path="data-engineering/fabrics/spark-provider/img/sparkpool.png" />

3. Make sure the Application is registered.
   <img src="https://mintcdn.com/prophecy-62973bd0/OQJE7w-WwYxXQuky/data-engineering/fabrics/spark-provider/img/add_app.png?fit=max&auto=format&n=OQJE7w-WwYxXQuky&q=85&s=46d1202934e484b6064986491e8a289c" alt="Synapse security" width="1710" height="316" data-path="data-engineering/fabrics/spark-provider/img/add_app.png" />

4. Create a secret for your Application.
   <img src="https://mintcdn.com/prophecy-62973bd0/noSvxSYkIPZNsTzk/data-engineering/fabrics/spark-provider/img/secret.png?fit=max&auto=format&n=noSvxSYkIPZNsTzk&q=85&s=7491edd4e2c80f26c48b2ab09dfafc6f" alt="Synapse security" width="2174" height="632" data-path="data-engineering/fabrics/spark-provider/img/secret.png" />

5. Make a note of your secret. We need this information for your fabric.
   <img src="https://mintcdn.com/prophecy-62973bd0/noSvxSYkIPZNsTzk/data-engineering/fabrics/spark-provider/img/secret2.png?fit=max&auto=format&n=noSvxSYkIPZNsTzk&q=85&s=7bdb2d72517dbb387cb0e910808ea270" alt="Synapse security" width="2056" height="538" data-path="data-engineering/fabrics/spark-provider/img/secret2.png" />

6. Configure Application, Workspace, Storage roles to ensure proper access.

Find more information on assigning roles from [Azure's documentation](https://learn.microsoft.com/en-us/azure/synapse-analytics/security/how-to-set-up-access-control).

### Configure connectivity between Synapse and Prophecy

Note that the Prophecy public IP is `3.133.35.237`.

1. Open Prophecy and click **Create Entity** from the left navigation menu. Then, click on the fabric tile.

2. Name your fabric and click **Continue**.

3. Choose **Synapse** as your **Provider**.

   <img src="https://mintcdn.com/prophecy-62973bd0/noSvxSYkIPZNsTzk/data-engineering/fabrics/spark-provider/img/provider1.png?fit=max&auto=format&n=noSvxSYkIPZNsTzk&q=85&s=01dd5e19f8dc3751bb13b7c787a79633" alt="Synapse connect" width="1612" height="1088" data-path="data-engineering/fabrics/spark-provider/img/provider1.png" />

4. Copy and paste your **Application Client ID**, **Secret Value**, and **Tenant ID** from the App Registration page.

   <img src="https://mintcdn.com/prophecy-62973bd0/OQJE7w-WwYxXQuky/data-engineering/fabrics/spark-provider/img/appconfig.png?fit=max&auto=format&n=OQJE7w-WwYxXQuky&q=85&s=ef75ff967d2bf2629890eed69a8523c6" alt="Synapse connect" width="3390" height="768" data-path="data-engineering/fabrics/spark-provider/img/appconfig.png" />

5. Copy and paste your Synapse **Resource Group Name** and **Subscription ID** from your Synapse workspace.

   <img src="https://mintcdn.com/prophecy-62973bd0/noSvxSYkIPZNsTzk/data-engineering/fabrics/spark-provider/img/workspaceconfig.png?fit=max&auto=format&n=noSvxSYkIPZNsTzk&q=85&s=e5854eeb736284ce05626fa09fea2a51" alt="Synapse connect" width="3396" height="814" data-path="data-engineering/fabrics/spark-provider/img/workspaceconfig.png" />

6. Click on **Fetch environments**.

7. Select your Spark pool from the *Spark environment* dropdown. All other fields should be automatically populated after selecting your Spark Pool.

   <img src="https://mintcdn.com/prophecy-62973bd0/noSvxSYkIPZNsTzk/data-engineering/fabrics/spark-provider/img/selectsparkpool.png?fit=max&auto=format&n=noSvxSYkIPZNsTzk&q=85&s=ede44aa33e91705a9407fb807a94a0e4" alt="Synapse connect" width="1570" height="1010" data-path="data-engineering/fabrics/spark-provider/img/selectsparkpool.png" />

8. Click on **Add Job Size** and configure the Job size that you would like to use for processing.

   <img src="https://mintcdn.com/prophecy-62973bd0/OQJE7w-WwYxXQuky/data-engineering/fabrics/spark-provider/img/addjsize.png?fit=max&auto=format&n=OQJE7w-WwYxXQuky&q=85&s=aa87f2cdc37189bb63a2c0342e4b1818" alt="Synapse connect" width="1056" height="1004" data-path="data-engineering/fabrics/spark-provider/img/addjsize.png" />

Now we configure the dependencies.

1. Under **Scala** enter the following **Path**:

   `https://prophecypublicazure.blob.core.windows.net/prophecy-public-libs/prophecy-scala-libs/`

2. Under **Python** enter the following **Path**:

   `https://prophecypublicazure.blob.core.windows.net/prophecy-public-libs/prophecy-python-libs/`

3. Click on **Complete**.

Your fabric for Azure Synapse fabric is configured! Try creating a cluster using the fabric that you've just created and attach to it.

Run a simple pipeline and make sure that the interim returns data properly.
