Custom Data Options in Analytics

I have started looking into setting up Analytics to deal with an assortment of different kinds of custom data, and I have questions:

  1. Custom fields in T_CONTRIBUTION, T_ORDER, and T_PLAN all appear with the descriptions "Custom 01", "Custom 02", etc., which is quite user-unfriendly. But I also see that in the ElastiCube setups, the custom fields are hidden in the main SQL tables and instead appear in Custom Tables. My guess is that the reason it was done this way was to make it relatively easy to modify the Custom Table so that the fields appear with the correct names. This is relatively straightforward: just update the query using the syntax "[Custom 01] as [Correct Field Name]". (Note that I've found that the build will fail if you do "Changes Only" -- "Replace All" works, though.) Is that what I'm supposed to be doing? It seems like there ought to be a way to automate the configuration of those custom tables -- is there, or will there be in a future update?

  2. I understand from this discussion that some future version is going to include a way to customize the ElastiCubes using System Tables, but it's unclear when that will be. In the meantime, it seems like there are two options for including additional data.
    1. The option that John mentions in the aforementioned discussion is to license the ElastiCube Manager and modify the cubes that way. We are budgeted for that tool, but if a Tessitura-supported solution is on the horizon, I'm not sure if doing it myself in the ElastiCube Manager is the smart way to go.
    2. In the regular data manager, it's possible to connect to additional datasources and get live data, so another option for local tables would be to add a datasource that's pointed at the regular Tessitura server (instead of the BI server) and get the table that way. This seems like it might be unwise for tables with large amounts of data, but is this a reasonable approach for local tables that mostly hold custom metadata? For example, we have a set of tables that provide additional ways to categorize Funds. In a test environment, I set up a custom-query-based data object in the Contributions cube, linked it to the CONTRIBUTION DETAILS object on fund_no, and it seems to work well. The custom query flattens my custom reference tables into a single view that only has 2155 rows. Is this a reasonable approach? My thinking is that it's a decent short-term solution until the new functionality becomes available, but maybe not?
Parents
  • Hi Galen,

    Thanks for these great questions. Regarding the custom fields, the same Custom 01 field could possibly hold, for example, a date value for one member of a consortium, and a text value that serves a wholly different purpose for another member of that consortium. This is enabled by the keyword and control group settings in Tessitura. In that scenario, it’s impossible to give the field a single, meaningful name. There are also technical challenges that arise when trying to support database column name changes from one Analytics data refresh to another. Since it is so easy to rename fields in the Analytics dashboards themselves, we delivered v15 Analytics with generically named “custom” fields for Contributions, Orders, and Plans. I’m sure we’ll revisit that at some point as we continue to enhance Analytics.

    The Data tab in Analytics, available only to locally-hosted system administrators, will improve with future releases, but can currently be cumbersome, and is limited in its ability to customize cubes, when compared to the Elasticube Manager application. To license the ECM, please open a TASK request. For your specific Fund grouping use case, in a network configuration where the Analytics cube server has access to the production Tessitura database, pulling small doses of dimensional data from Tessitura directly into the cube and bypassing the warehouse ETL seems reasonable. I recommend you flatten the data in a SQL view in the Tessitura database and extract just that view rather than extracting several tables into the cube and flattening them in a custom cube query. Doing that work outside the cube is more aligned with the future cube customization work you referenced, and will transition more cleanly when that time comes.

    One caveat I feel the need to share: the cubes are one giant inner join. If you find after adding a custom dimension that data in the cube goes missing, it is very likely due to not all values that exist on one side of your join also existing on the other side.

    Best,
    Chris

     

    Chris Wallingford
    Director, Business Intelligence
    Tessitura Network
    Office  +1 888.643.5778 ext 553
    chris.wallingford@tessituranetwork.com
    Tessitura Learning & Community Conference
    July 28-August 1, 2019
    #TLCC2019

  • Thanks for the very helpful info. I guess the logical followup question is this: Which kinds of things are safe to customize, and which things will get wiped out during Full Loads or will cause problems during future version upgrades? It seems likely that changing the supplied views is a bad idea, and adding additional views is relatively safe. What about renaming columns by changing the queries in the ElastiCubes, as I'm now experimenting with for custom element names? What about adding custom calculated fields to the cubes?

    I really think that supporting the names for custom fields is important, and shouldn't be too hard to do, even with the need to enable different names for different Divisions. For example, the load script could create separate tables for each Division, apply security to them, and join all of those tables to the main table. Then regular users would only have access to the table that belongs to their Division, and the column names could be set correctly by the script.

    That's a very useful caveat about the inner join situation. Knowing that going in will probably save me a lot of grief somewhere down the line!

    -Galen

Reply
  • Thanks for the very helpful info. I guess the logical followup question is this: Which kinds of things are safe to customize, and which things will get wiped out during Full Loads or will cause problems during future version upgrades? It seems likely that changing the supplied views is a bad idea, and adding additional views is relatively safe. What about renaming columns by changing the queries in the ElastiCubes, as I'm now experimenting with for custom element names? What about adding custom calculated fields to the cubes?

    I really think that supporting the names for custom fields is important, and shouldn't be too hard to do, even with the need to enable different names for different Divisions. For example, the load script could create separate tables for each Division, apply security to them, and join all of those tables to the main table. Then regular users would only have access to the table that belongs to their Division, and the column names could be set correctly by the script.

    That's a very useful caveat about the inner join situation. Knowing that going in will probably save me a lot of grief somewhere down the line!

    -Galen

Children
  • Hi Galen,

    The Analytics Warehouse has an upgrade mode as of 15.1, so customizations should be maintained upgrading to that version and beyond. However, v15.0 service packs only have install mode for the warehouse, and will likely result in customization loss without appropriate prep. You can be assured that for all versions, the standard BI views will be overwritten during upgrade. As will the standard Elasticubes.

    Creating local BI views (bi.LVT_DW_%) is the safest way to manipulate the business logic behind the existing fields being extracted from Tessitura. Then by subbing out the [source] in TR_ANALYTICS_DATA for the row associated with the standard view, the updates will be reflected in the warehouse and cubes. After upgades, for any local BI views, review the release notes and perhaps the standard source views themselves for changes from the previous version, and if found, apply the customization to a fresh copy of the source view. If you're adding new columns I suggest that happen in a new source/table/view rather than by altering and expanding the columns of an existing one. It'll be easier to maintain in the long run.

    Renaming those custom fields directly in the Elasticube is probably fine if you don't mind doing it every time. If you rename a column, then any dashboards that reference those fields will be broken after upgrade until you restore your naming exactly. Custom calculated fields would also need to be re-added after upgrade.

    Also, Analytics doesn't currently support table/column level security at this time. Only data source and row level security.

    Best,
    Chris

     

    Chris Wallingford
    Director, Business Intelligence
    Tessitura Network
    Office  +1 888.643.5778 ext 553
    chris.wallingford@tessituranetwork.com
    Tessitura Learning & Community Conference
    July 28-August 1, 2019
    #TLCC2019

  • Thanks, Chris! This is all extremely helpful.