Create and Manage a Data Product

Alation Cloud Service Applies to Alation Cloud Service instances of Alation

Creating and maintaining a data product involves taking responsibility for its accuracy, usefulness, and reusability. This topic explains how to create and manage a data product throughout its lifecycle.

To start using data products through Alation UI, contact Alation Support. Alation Support will enable the alation.feature_flags.DEV_enable_data_products feature flag upon request.

Create a Data Product

To create a data product, you will define it through a YAML file. You can write the YAML manually or use Alation’s UI to construct it. Once you’ve created the YAML file, you must upload it to Alation if using APIs.

YAML Field Reference

Each data product YAML file must include fields specified in the specification at: https://<base_URL>/static/swagger/specs/data_products/product_schema.yaml.

Here are some of the common fields:

Field

Required

Description

productId

Yes

Unique identifier for the product. Ensure that the product ID is unique across all data products in the marketplace. It should not contain any spaces or special characters other except _ and -

version

Yes

Semantic version string Example: 1.0.0

contactEmail

Yes

Contact email of the product owner for support or questions

contactName

Yes

Human-readable name of the product owner

en.name

Yes

Display name for the product

deliverySystems

Optional

List of systems where the data is accessible. A delivery system is a system that provides access to the data product. It includes the type of delivery system, the URI to access it, and any additional instructions for requesting access.

recordSets

Optional

One or more tabular datasets included in the product. A record set is a tabular dataset of rows and columns of structured data that can be stored in any system, such as a database, API, spreadsheet, or file. It includes a schema, optional sample data, and access instructions so others can understand and use it.

You may also add custom properties anywhere in the YAML using the x- prefix. For example, x-department or x-security-tier.

Here’s an example of a YAML file for a data product:

product:
    productId: finance:arr_sales_churn
    version: 1.0.0
    contactEmail: [email protected]
    contactName: Jane Doe
    x-customProperty:
        description: >
        This is a custom property for demonstration purposes.
        You can add your own properties that aren't defined in the scehma.
        The only requirement is that the name must start with "x-".
        It can be of any type, such as string, number, boolean, etc.
    en:
        name: ARR, Sales, and Churn
        shortDescription: Tracks ARR, new sales, renewals, and churn monthly
        description: |
        This data product provides visibility into financial metrics such as
        Annual Recurring Revenue (ARR), new sales, renewals, and churn. It is
        designed to help finance, sales, and executive teams monitor growth and
        retention performance across customer segments and time periods. Data is
        updated monthly and includes current and historical trends.
        logoUrl: https://example.com/logos/arr-sales-churn.png
    deliverySystems:
        snowflake:
        type: SQL
        uri: snowflake://acme.analytics/FINANCE/ARR_METRICS
        accessRequestInstruction:
            type: manual
            instruction: Request access via Snowflake role FINANCE_ANALYST or contact [email protected]
            request: https://company.com/access-request-form
    recordSets:
        arr_metrics_monthly:
        name: Monthly ARR Metrics
        description: >
            Each row represents monthly ARR metrics, including new sales, expansions,
            renewals, and churn, by customer segment.
        schema:
            - name: month
            description: The month the metric applies to.
            type: date
            - name: segment
            description: Customer segment (e.g., Enterprise, SMB).
            type: string
            - name: new_sales_arr
            description: ARR from new customer sales in the month.
            type: number
            - name: expansion_arr
            description: ARR from existing customer expansions.
            type: number
            - name: renewal_arr
            description: ARR retained from renewals.
            type: number
            - name: churn_arr
            description: ARR lost due to customer churn.
            type: number
            - name: net_new_arr
            description: Net ARR change (sales + expansion + renewal - churn).
            type: number
        sample:
            type: mock
            data: |
            month,segment,new_sales_arr,expansion_arr,renewal_arr,churn_arr,net_new_arr
            2024-01-01,Enterprise,120000,30000,100000,20000,230000
            2024-01-01,SMB,50000,10000,40000,10000,90000
        dataAccess:
            - type: SQL
            qualifiedName:
                database: FINANCE
                schema: ARR_METRICS
                table: MONTHLY
            documentationUrl: https://company.com/docs/arr-metrics

        customer_churn_details:
        name: Customer Churn Details
        description: >
            Each row represents a customer that churned in a given month,
            including associated ARR, churn reason, and segment. Useful for
            analyzing churn patterns at the customer level.
        schema:
            - name: customer_id
            description: Unique customer identifier.
            type: string
            - name: customer_name
            description: The name of the customer.
            type: string
            - name: churn_month
            description: The month the customer churned.
            type: date
            - name: churn_arr
            description: ARR lost from this customer churn.
            type: number
            - name: churn_reason
            description: Reason for churn as captured by sales/support.
            type: string
            - name: segment
            description: Customer segment (e.g., Enterprise, SMB).
            type: string
        sample:
            type: mock
            data: |
            customer_id,customer_name,churn_month,churn_arr,churn_reason,segment
            CUST123,Acme Corp,2024-01-01,50000,Budget cut,Enterprise
            CUST456,Startify Inc,2024-01-01,10000,Switched to competitor,SMB
        dataAccess:
            - type: SQL
            qualifiedName:
                database: FINANCE
                schema: ARR_METRICS
                table: CUSTOMER_CHURN
            documentationUrl: https://company.com/docs/customer-churn

Create a Product Spec YAML File Manually

  1. Open a text editor of your choice (example, Visual Studio Code or Sublime Text).

  2. Start a new file and name it with a .yaml extension.

  3. Refer to the specification you can find at https://<base_URL>/static/swagger/specs/data_products/product_schema.yaml (example: https://myalationcatalog.com/static/swagger/specs/data_products/product_schema.yaml) to develop the .yaml file content.

  4. Save the file.

Create a Product Spec YAML File in Alation

  1. Go to the Data Product App > Manage Marketplace page.

  2. Click Add or Edit Data Product.

  3. Click the Create in Editor button.

  4. Enter the required metadata. For details, see YAML Field Reference.

  5. Preview the product page to review your metadata.

Note

You can use the Data Products Builder Copilot to help you create a sample data product that you can enhance to fit your requirements.

  1. Click Save or download the YAML file to get a copy of the spec file from the Data Product Options (three-dot menu in the top right) on the Preview tab.

    ../../_images/data-product-add-yaml-file.png

Upload the YAML File

  1. Go to the Data Product > Manage Marketplace page.

  2. Click Add or Edit Data Product.

  3. Click on the Upload YAML button.

  4. Browse to your YAML file and select it.

  5. Click Upload.

Update a Data Product

To update a data product, you can modify the YAML file using the Alation UI:

  1. Go to the Data Product > Manage My Data Product page.

  2. From the list of products under the Data Products table, locate the one to update.

  3. Scroll to the extreme right of the table and click Edit.

  4. Edit the YAML file and preview the changes.

  5. Click Save.

Download a Data Product

  1. Navigate to the product’s detail page.

  2. Click Data Product Options (the three-dot menu in the top right).

  3. Select Download Data Product to download the YAML file.

Assign Product Roles

To assign roles to users or groups for a data product.

Manage Who Can View or Edit Data Product

  1. Open the product page.

  2. Click Data Product Options (the three-dot menu in the top right).

  3. Select Manage Permissions.

    ../../_images/data-products-manage-permissions1.png
  1. Use the table to add users or groups.

    ../../_images/data-products-manage-permissions2.png
  1. Choose the appropriate role: Admin or Viewer.

  2. Click Save.

Only users with the Admin role can edit the product or assign roles.

Delete a Data Product

  1. Go to the Data Product App > Manage My Data Products page.

  2. From the list of products under the Data Products table, locate the one to delete.

  3. On the extreme right of the table, click the three dots.

    ../../_images/data-products-delete.png
  4. Select Delete Data Product.