Skip to Main Content
IBM Data Platform Ideas Portal for Customers


This portal is to open public enhancement requests against products and services offered by the IBM Data Platform organization. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:


Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,


Post your ideas

Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,

  1. Post an idea

  2. Upvote ideas that matter most to you

  3. Get feedback from the IBM team to refine your idea


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

IBM Employees should enter Ideas at https://ideas.ibm.com



Status Delivered
Created by Guest
Created on Aug 29, 2025

Lineage export to Alation for SAS tables should allow path to be used to identify tables instead of library name

Background: When column lineage is sent to Alation, it must have a alation_source_id, schema name, table name and column name. In case of SAS Grid tables, , the convention assumed is <alation_source_id>.<SAS Library ref name>.<Table>.<Column>. In other words the SAS Lib red is used instead of schema.

However the SAS library refname changes from sas script to script. For example there may be two scripts (alice.sas, bob.sas) that refer to the same library (/data/finance) using two names (alice_lib,bob_lib):


/* alice.sas */

LIBNAME alice_lib "/data/finance";

proc sql;

create table alice_lib.new_table as /* Create a new table in the SAS Grid */

select *

from sashelp.class /* Example: Copy data from an existing dataset */;

quit;


/* bob.sas */

LIBNAME bob_lib "/data/finance";

proc sql;

select *
from bob_lib.new_table /* Example: select data from table Alice created*/;

quit;

(Sidebar: Manta represents this situation well; in the Flow Viewer, we see "SAS/data/finance/new_table" instead of "SAS/bob_lib/new_table". )

The ask:

When Manta exports SAS table lineage lineage to Alation, it should send lineage to <alation_source_id>.|data|finance|new_table.<Column> instead of <alation_source_id>.alice_lib.new_table<Column>. In other words, Manta should use the pipe-delimited path of the saslib as alation schema, instead of the libref path.

This will ensure that the lineage sent to Alation for both alice.sas and bob.sas point to the same table.

Note that not all customers may want to use pipe-delimited value for the path when creating SAS tables in Alation. Therefore, let Manta have a configuration so that customers can switch between current assumption (using libref as schema) and this proposed change (uisng the pipe delimited path as the schema).

Needed By Yesterday (Let's go already!)
  • Admin
    Jakub Moravec
    Sep 9, 2025

    Hi Dev,

    Thank you.

    On lowercasing the path - as per this Alation article the APIs treat the identifier as case insensitive https://developer.alation.com/dev/docs/lineage-api-faq. My proposal is for us NOT to lowercase the directory names (at least now for the hotfix). If this causes problem, we can revisit this for 42.14. Does this work for you?

    Jakub

  • Guest
    Sep 8, 2025

    @jakub,

    confirmed the logic. Here it is in pseudocode

    ```
    def canonical_path(sas_lib_path):
    res = sas_lib_path.lower().split("/")
    return "|".join(res)

    ```

    The test case for canonical_path() is:

    1. canonical_path("/foo/bar") -> "foo|bar"

    2. canonical_path("/foo/bar/") -> "foo|bar"

    3. canonical_path("/FOO/BAR") -> "foo|bar"

  • Admin
    Jakub Moravec
    Sep 5, 2025

    Agreed format of the identifier: <alation_source_id>.data|finance.new_table.<Column>, Dev to double-check and confirm today

  • Admin
    Jakub Moravec
    Sep 4, 2025

    Apart from that clarification, here is the specification we agreed on (that involves not only what is required in this Aha idea, but also what was discussed over support cases).
    Please review and acknowledge the specification. I would also like to kindly ask if you can share the "SAS Program" we can use for verificaiton over email.

    Specification of changes in SAS Export to Alation (compared to 42.13 functionality):


    • Stop exporting SAS and SaS Code Synonyms, these would breake lineage for SAS Tables if exported, as lineage between the Synonym and the Table now cannot be exported because it is a direct link.

    • Start exporting SAS Tables, stop exporting SAS Code Tables. SAS Code Table are not interesting for end users, we need to focus on SAS Tables instead.

    • Change asset identifier from <alation_source_id>.<SAS Library>.<Table>.<Column> to <alation_source_id>.<(SAS) Directories - pipe separated >.<Table>.<Column> (directories can be nested)

      • We need to chain and export all nested directories in the identifier

      • What should be the separator for directories - pipes. OpenPoint: should there be a leading pipe?

      • We would use root string if there is no directory

    • Transformations - export SAS Program instead of individual Statements

      • As a consequence we would merge lineage for all statements in one dataflow object and thus exporting smaller number of dataflow objects and simplifying lineage in Alation


    Side effect:

    • If the export of artificial loops into Alation is turned off (this will be possible in Manta 42.14), the SAS lineage will be exported only if a SAS Program has both source and target, each of them being either a SAS (not SAS Code) Table, or a Table from another data source (e.g. DB2). On top of that, the Tables need to conform to the general export conditions (they must not be deduced and Alation mapping for them must exist). If these conditions are not met, SAS Program will not be exported.

  • Admin
    Jakub Moravec
    Sep 4, 2025

    Hi Dev,

    can you please confirm if the leading pipe in "<alation_source_id>.|data|finance|new_table.<Column>" is required? I would expect "<alation_source_id>.data|finance|new_table.<Column>".

    Thank you,
    Jakub