Dropping Reference Point or Column from GD

by marcus.wong@keboola.com



Scenario:


You have a reference column, and you would like to remove it completely.  First, you must drop the column in GD, then you need to set as “IGNORE” on the writer.  Steps are below:


1. Clone project -- so we can test it first.


2. Open this link, and replace the project string with yours:

https://secure.gooddata.com/gdc/md/project-string-here/ldm/manage

(Go to gray pages and add /ldm/manage to end of url)


3. Enter this command:

ALTER ATTRIBUTE {attr.tableName.columnName} DROP KEYS {f_tableName.columnName_id};


a) Finding {attr.tableName.columnName}:

  • Go to DataSets first in GD and locate this connection point.

  • Enter gray pages from there (include /obj/####)

    • ex: https://na1.secure.gooddata.com/gdc/md/rhih8kprwib8pr71jag74lvlv33eiu/obj/104


This gray pages page will have 3 sections: “pk:”, “fk:” and “meta:”.

Go to the “meta:” section and find the “identifier” row - this will give you what goes INSIDE the { }


**in the example below this is productID (Product)


b) Finding {f_tableName.columnName_id}:

Because the Reference attribute doesn’t show up in the front-end of the data, we have to go to the DataSet that contains the reference point, and enter gray pages from that data set.

  • ex: https://na1.secure.gooddata.com/gdc/md/rhih8kprwib8pr71jag74lvlv33eiu/obj/104

You will be confronted with all "dataLoadingColumns".

You have to click through each one, until you find the reference point, at which point copy the text from the “identifier” row.


**in the example below, this is productID column in the Subscriptions table.  


After replacing the proper identifiers into the ALTER ATTRIBUTE command, press Submit.


Example:




In this example, we are trying to break the reference between productID (Product) and UsernameMD5 (Subscriptions).  The correct command for this is:


ALTER ATTRIBUTE {attr.product.productid} DROP KEYS {f_subscriptions.productid_id}


4. Check your model to see if the link is broken


5. If yes, do it on your actual project


6. Set the column in GD Writer to “IGNORE”


----------


If you are dropping an attribute from a dataset (e.g. "Manual_Auto" from the "Product" dataset), in order to KC writer to work properly, you may need to follow a different process.


1. Follow the first 2 steps written above.


2. Now you need to drop both keys from the attribute and the table as in https://developer.gooddata.com/article/maql-ddl#dataset -


ALTER ATTRIBUTE {attr.product.manual_auto} DROP KEYS {d_product_manual_auto.id}, {f_product.manual_auto_id};


3. If you need to delete the attribute from GD completely:

ALTER DATASET {dataset.product} DROP {attr.product.manual_auto};
DROP
{attr.product.manual_auto};
SYNCHRONIZE {dataset.product} PRESERVE DATA;


4. Check your model if the link is broken/attribute is gone.


5. Do the same on your actual project.


6. Set the column in GD Writer to “IGNORE”

Comments