> ## Documentation Index
> Fetch the complete documentation index at: https://domoinc-openapi-sync-dataflows.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# > Domo on Databricks (RECOMMENDED)

export const InlineImage = ({src, alt = '', height = '1.6em'}) => {
  return <img noZoom src={src} alt={alt} style={{
    display: 'inline',
    verticalAlign: 'start',
    height: height,
    margin: '0'
  }} />;
};

### Intro

With Cloud Amplifier, you can power your Domo instance using Databricks. This guide is written for users who are familiar with Databricks and describes how to register Databricks with Cloud Amplifier for read-only and read/write integrations.

After completing the setup processes of your choice, you can use virtual tables that read from Databricks to create cards, configure alerts, and serve as inputs in Magic ETL DataFlows.

### Architectural Overview

<Frame>
  <img alt="databricks architectural overview.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000002joPJ.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=c873eca8f334a4fd705d80d885d8fefe" style={{width: 900, height: 771}} width="2000" height="1714" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000002joPJ.jpg" />
</Frame>

### Prerequisites

Before configuring the Databricks connection, we strongly recommend that you complete the following:

* **(Recommended) Create a Databricks service account —**
  We recommend creating a new Databricks account specifically for this integration. You can use any account with Read access in Databricks, but it is best practice to use a service account. This account must have read access to your default Databricks environment in order to create virtual Databricks tables in Domo.
* **(Recommended) Create a Domo service account —**
  We recommend creating a new Domo account specifically for this integration. The custom role for the account must have the Manage Cloud Accounts and Manage DataSet grants enabled. For more information about using OAuth with your Databricks-Cloud Amplifier connection, see [DataBricks using Personal Access Token](https://domo-support.domo.com/s/article/000005522?language=en_US).

For more information about roles and grants, see [Managing Custom Roles](/s/article/360043438973).

### Read-Only Setup

Follow these steps to configure read-only access to Databricks tables from within Domo via Cloud Amplifier.

1. Log in to your Domo service account.

2. Go to the <InlineImage src="/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004mhMv.jpg" /> **Data Warehouse**.

3. Select **<InlineImage src="/images/kb/ka0Vq000000BCKP-00N5w00000Ri7BU-0EM5w000005vNtv.png" />** **Add New Cloud Account**.

   The new integration modal displays.

4. In the modal under
   **Native integration**, select **Databricks** (If Databricks doesn't display, select **See More** to see all possible integrations.)

   <Frame>
     <img alt="choose databricks.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq0000053Y8j.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=aab87c7e667b48e609ccd364df666dc2" style={{width: 749, height: 500}} width="2120" height="1414" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq0000053Y8j.jpg" />
   </Frame>

5. Select
   **+ Add New Integration**. If there are other existing integrations, this option displays at the bottom of the list.

   <Frame>
     <img alt="add new integration.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EM5w000006vuAS.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=8a31acc54a868d370cfb140718b292dc" style={{width: 750, height: 519}} width="1722" height="1196" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EM5w000006vuAS.jpg" />
   </Frame>

6. Fill out the fields in the modal. You can move through the modal by selecting **Next** on each screen.

   1. Enter a name and optional description in the
      **Integration name** and **Integration description** fields.

   2. Create a personal access token in your Databricks account.
      *Copy the token for your records—you cannot recover it after you leave the page.*

   3. Paste the token into the
      **Databricks personal access token** field in the integration modal.

   4. Locate the Databricks connection URL in Databricks. (Navigate to
      **SQL Warehouses** > \{ *warehouse name* } > **Connection details** in Databricks.)

      <Note>
        **Note:** Do not include protocol identifiers with the URL. **jdbc:databricks\://** is assumed, **jdbc:spark://** is not supported.
      </Note>

   5. Copy the JDBC URL and paste it into the **Databricks connection URL** field in the integration modal.

      <Frame>
        <img alt="Screenshot 2024-10-10 at 10.45.07 AM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000003AnCE.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=0ea4a43fe026ff2fc4fab3cd0b3c603a" style={{width: 750, height: 455}} width="1139" height="690" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000003AnCE.jpg" />
      </Frame>

7. Configure your data freshness settings. Learn about
   [advanced scheduling](https://domo-support.domo.com/s/article/4412849158167?language=en_US#advanced_scheduling) for data freshness.

Your configuration is now complete. You can optionally choose Databricks tables to connect to Domo by following the steps below.

# Add Databricks Tables to Domo

The following process is optional.

1. After setting up your read-only integration, select
   **Choose Tables to Connect**.

   <Frame>
     <img alt="choose tables.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EM5w000006vuAr.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=d29d6009993769ec86c244f4e5728aad" style={{width: 750, height: 520}} width="1716" height="1190" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EM5w000006vuAr.jpg" />
   </Frame>

2. Search for and select Databricks schemas and tables you want to use to create DataSets in Domo.

3. Select
   **Create DataSets**.

   <Frame>
     <img alt="schemas and tables.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EM5w000006vuAw.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=8ee7b721535c82189644152d2d9f978e" style={{width: 748, height: 495}} width="1788" height="1182" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EM5w000006vuAw.jpg" />
   </Frame>

You have successfully configured your read-only integration from Databricks to Cloud Amplifier.

### Write Setup

Before taking the steps described in this section, complete the following prerequisites.

# Prerequisites

* Enable Unity Catalog on your Databricks instance. Find enablement instructions
  [here](https://docs.databricks.com/en/data-governance/unity-catalog/enable-workspaces.html#enable-your-workspace-for-unity-catalog) <InlineImage src="/images/kb/ka0Vq00000001FR-00N5w00000Ri7BU-0EMVq0000000XDh.jpg" />.
* Obtain the following Databricks permissions for your Databricks user:
  * Create storage credential
  * Create catalog
  * Create external location

# Convert a Read-Only Integration to Read-Write

1. In your Domo instance, go to the
   <InlineImage src="/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004mhMv.jpg" /> **Data Warehouse** and select **Manage Cloud Connections** to open the integration modal.

   <Frame>
     <img alt="manage cloud connections databricks.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004pxTZ.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=98c1a196d5a4c481064f8e2adffd18ac" style={{width: 897, height: 366}} width="2120" height="866" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004pxTZ.jpg" />
   </Frame>

2. In the modal under
   **Native** **integration**, select **See more** > **Databricks**.

   The list of existing Databricks integrations displays.

3. Locate the existing read-only integration that you want to upgrade to a read-write integration. Hover over the integration row and select
   <InlineImage src="/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004riF7.jpg" /> **Options** (wrench icon) > **Configure Write Access**.

   Use **Next** to move through the modal as you complete the steps.

   <Frame>
     <img alt="configure write access.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004rj9Z.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=0e2a429c59f7080c48fa96dfb77c62db" style={{width: 800, height: 509}} width="2512" height="1600" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004rj9Z.jpg" />
   </Frame>

4. In the modal, enter the Databricks write catalog name in the labeled field.

   <Frame>
     <img alt="enter catalog name.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq0000050paj.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=bd991fe0a660bccd95894c2615e33bb1" style={{width: 798, height: 417}} width="3040" height="1588" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq0000050paj.jpg" />
   </Frame>

5. Select
   **Validate** to check the name of the catalog and load the list of schemas that belong to that catalog.

   <Frame>
     <img alt="validate catalog.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq00000543Z8.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=77f9bc03fba8b2ab7c14791cae2110e4" style={{width: 800, height: 421}} width="3034" height="1596" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq00000543Z8.jpg" />
   </Frame>

6. After validating the catalog, choose the schema from the
   **Schema** dropdown.

   <Frame>
     <img alt="choose schema.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq00000540Ze.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=f4ab24cc744e9b13bff971355f302437" style={{width: 800, height: 423}} width="3024" height="1598" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq00000540Ze.jpg" />
   </Frame>

7. Follow the on-screen instructions to create a storage credential and enter it in the
   **STORAGE\_AWS\_EXTERNAL\_ID** field.

   <Frame>
     <img alt="new storage credential.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq0000050pvh.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=e68b3ce81561afb3dcb10941eb2ee36d" style={{width: 800, height: 420}} width="3034" height="1592" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq0000050pvh.jpg" />
   </Frame>

8. Follow the on-screen instructions to create
   **External Locations**.

   <Frame>
     <img alt="create external locations.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004pr1a.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=34827e72b63091b031693dee15a2fb1e" style={{width: 801, height: 505}} width="1878" height="1184" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004pr1a.jpg" />
   </Frame>

9. On the
   **Finalize Write Integration** screen, confirm that you understand that Domo will be able to make changes to your Databricks environment.

   <Frame>
     <img alt="finalize write integration.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004q4Jl.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=4257f629cbd21337d9b79f7c10eab528" style={{width: 800, height: 512}} width="1826" height="1168" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004q4Jl.jpg" />
   </Frame>

   A success message displays.

10. Choose
    **Return To Account List** to see your integration configured with read and write access.

    <Frame>
      <img alt="read and write access.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/a4f3szIEyPCXGEyk/images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004q4Zt.jpg?fit=max&auto=format&n=a4f3szIEyPCXGEyk&q=85&s=33d3a72f8b26f516de4764853cd31bb9" style={{width: 799, height: 506}} width="1800" height="1140" data-path="images/kb/ka0Vq000000BENp-00N5w00000Ri7BU-0EMVq000004q4Zt.jpg" />
    </Frame>

You can now use your write integration across Domo, including writing the output of a Magic ETL DataFlow back to Databricks.

### Databricks-sourced DataSets

When Databricks-sourced DataSets are used in a DataFlow, the data is queried live from Databricks when the flow initiates. In addition, Databricks-sourced DataSets are checked for updates every 15 minutes based on the table's LAST\_ALTERED DateTime. If a table has been updated since it was last checked, DataFlows that use that table as a trigger initiate.
