1

I would like to modify one attribute of a record in GoodData using CloudConnect (namely set "Status" to "Deleted"). My table contains 35 arguments, and I was told that the only way to do so was to upload the whole record with this single field change).

Is there any better way to do so than what I am doing now, i.e. :

  • Creating 2 reports in the web Interface of GoodData (because I have more than 20 attributes in this table)

  • Thanks to their address, access the URL of the csv version of these reports to be downloaded in GD

  • Merge those 2 reports per business key, using every attribute in my original table

  • Change "Status" to "Deleted" on the records that interest me (fulfill a specific condition)

I am pretty much of a beginner in database management, and it seems weird to me that it is so hard to access data stored in GoodData (and also that it is so difficult to update one field of one table), don't hesitate to point parts of the documentation to me, I didn't find anything helpful in it.

Thanks in advance

WNG
  • 3,705
  • 2
  • 22
  • 31
  • Augustin, why do you need to do the update? I am asking this, because the way GoodData is most often used is that there are ETL processes, which are pushing data into GoodData from other systems and databases, and when change happens in one of those systems or databases (like change of Status to Deleted), it is propagated to GoodData by the ETL processes. – Jan Vlcek Jun 07 '15 at 13:30
  • In the case I am worried about, the base system does not have the possibility to push changes in gooddata (e.g. when my source database is a Google Docs), especially deletions, so I need to get the list of current records from Gooddata, in order to compare it to the updated list of records in the source file. – WNG Jun 08 '15 at 22:53
  • 1
    Best practice is not to compare records from GoodData, but reload the whole dataset with the new data. Or use snapshotting on that dataset and add new snapshot of the data with each new upload. https://developer.gooddata.com/article/analyzing-change – Jan Vlcek Jun 10 '15 at 07:27

1 Answers1

1

I recently did the update of the snapshot data, which was corrupted by the error in the source system.

To update a record you will need to:

  • Extract records in questions with all the fields of the dataset to a CSV file;
  • Delete these records from GoodData using MAQL DML delete statement (can be done in ETL graph or via grey pages);
  • Correct data in the CSV file and load it to GoodData making sure that load type is set to incremental.

It is really ironic that DML only has delete command. Update option would save us a lot of time.

Bulat
  • 6,869
  • 1
  • 29
  • 52
  • Thanks for answering. It's funny, I precisely need to use delete statement now, so I would need to use MAQL directly. Could I contact you to bother you for your deletion code ? When I tried to implement deletion a few months ago it didn't go well. Can you delete a whole row with a single instruction? For the job you describe I think I would have used CloudConnect for a single update or dealt like I did with the problem above, i.e. adding a "Status" attribute that can have the value "Deleted". But I'm scared of MAQL – WNG Feb 05 '16 at 22:47
  • Hi @WNG, will be happy to assist. Here you can find few examples on how to delete with conditions https://developer.gooddata.com/article/deleting-records-from-datasets#Warnings. – Bulat Feb 06 '16 at 20:00