Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
20 views25 pages

SAP Analytics Cloud: Modeling Basics

This document provides an overview of the structure and content of an openSAP course on SAP Analytics Cloud. The course consists of 5 weeks with 7 units per week, plus assignments and a final exam. It then discusses key concepts in data modeling for analytics including dimensions, measures, accounts, model structure, and data transformations.

Uploaded by

sudhaker153
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views25 pages

SAP Analytics Cloud: Modeling Basics

This document provides an overview of the structure and content of an openSAP course on SAP Analytics Cloud. The course consists of 5 weeks with 7 units per week, plus assignments and a final exam. It then discusses key concepts in data modeling for analytics including dimensions, measures, accounts, model structure, and data transformations.

Uploaded by

sudhaker153
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

openSAP

SAP Analytics Cloud – Become an Augmented BI


Expert
Week 1 Unit 1

00:00:05 Hello, welcome to this openSAP course, SAP Analytics Cloud, become an augmented BI
expert.
00:00:14 My name is David Stocker. I'm a product manager on the SAP Analytics Cloud team.
00:00:20 And over the next six weeks, my colleagues and I will lead you
00:00:24 through the basics of using SAP Analytics Cloud. In today's session or this week's session,
00:00:31 I will first give you a brief overview of how the course is structured,
00:00:35 and then I will lead you through the basics of modeling. There are five content weeks in this
course.
00:00:45 Each of those weeks is broken up into seven units. After each unit,
00:00:50 you will have a short self-test to test how well you're following along.
00:00:55 And at the end of each week, there is an assignment. This assignment is graded.
00:01:01 And if you score at least 50%, that will go on to your record of achievement
00:01:07 at the end of the course. At the end of the course, in week six,
00:01:11 there is a final exam. And if you achieve 50% on that
00:01:16 and 50% on all of your weekly assignments, you will get a record of achievement for the
course.
00:01:22 During the course, the hosts of the course,
00:01:26 so this would be myself and my colleagues will be available in the open forum
00:01:33 where you can ask us questions, you can ask each other questions,
00:01:36 or you can just discuss things that you find interesting. Modeling fundamentals.
00:01:48 At its purest form, a data model is a structured representation
00:01:55 of what statisticians would call ordinal data, or what we in the BI world call dimensions.
00:02:02 What statisticians call cardinal data, so that is data that you can do mathematical operations
on,
00:02:08 what we in the BI world would call measures. And lastly, the transformations
00:02:16 that you are required to do in order to go from raw tabular data
00:02:20 of numbers and characters into something with semantic meaning.
00:02:30 Models have dimensions. Dimensions are ordinal data,
00:02:36 and they're grouped values of ordinal data, typically inhabiting in the same column.
00:02:43 A good example of a dimension would be, say, the activity dimension in the lower example,
00:02:50 where you have an activity, and then you have individual members for walk and bike,
00:02:55 and they're lumped together as activities. Dates are also dimensions in SAP Analytics Cloud.
00:03:02 And here in the example on the right, we have a date dimension
00:03:07 and the members of the dimension are individual dates. SAP Analytics Cloud has four types of
dimensions.
00:03:18 The first is the account dimension. Put a pin in that, we won't discuss it now.
00:03:22 It's really for holding cardinal data along with measures. We have a date dimension type,
00:03:30 which is a very, very special dimension for handling dates. And it is a hierarchal dimension
00:03:39 where your data can be lumped together at the year level, the quarter level, month, week, and
so on.
00:03:47 And filters also handle dates quite differently than other dimension types.
00:03:53 We also have a second special dimension type, the geographic dimension, which can be,
00:03:59 for example, state or province or country codes, or hierarchies of those.
00:04:07 And it can also be created from longitude and latitude. And lastly, we have the generic
dimension,
00:04:15 and the generic dimension is essentially whatever you want to make of it.
00:04:19 It could be a simple column of values, it could be key value pairs matched together.
00:04:29 It could also have hierarchical information nested into the metadata of the dimension
00:04:34 that's not actually available in the original raw data. There's a concept of public dimensions
and private dimensions.
00:04:45 And the difference is whether the dimension is used in a single model only,
00:04:49 or whether it's available for use in many models. If you look at the two tables here
00:04:55 on the right-hand side, what you'll see is you'll see
00:04:58 that the upper table has a manager and a region and a headcount. It is an HR table.
00:05:07 Manager is a dimension that's only used in that table. It's not used in the table below,
00:05:13 which has a product sales, so it has product, region, and items sold.
00:05:20 But what you may notice is that region is used in both dimensions.
00:05:24 And so here, it might be a good idea to create a public dimension called region
00:05:29 where you maintain that information separately. You would want to create public dimensions
00:05:35 if the dimension is very complex and you had to put a lot of thought into its creation,
00:05:41 in which case you may want to hold onto it for a future reuse,
00:05:45 or if you are already encountering it over and over again or expect to reuse it over and over
again,
00:05:52 something like, say, sales regions. Measures and accounts.
00:06:01 So, cardinal values are numbers, specifically number columns
00:06:06 that we can perform mathematical operations on. At their most basic level,
00:06:12 things like summing values up or averaging values. And we would want to do this routinely.
00:06:20 In the analytics world, say, for example,
00:06:22 I have my ice cream cones sold data in the table on the upper right.
00:06:28 It's on a monthly basis. But if I want to display that same data
00:06:33 at the quarterly level because I have a date dimension in it,
00:06:36 or at the yearly level, do I want to summarize as average cone sold
00:06:43 or do I want to sum them up? In this particular case,
00:06:46 the sensible thing is probably to sum them up. I want to know the total number of cones sold.
00:06:51 So I sum them up. I know the total number sold in Q1, Q2, Q3,
00:06:56 and I have my full annual value. Measures and accounts are two different approaches
00:07:07 to handling these cardinal values and mostly refers to
00:07:11 how the data is stored in SAP Analytics Cloud, and in some respects how it's processed.
00:07:19 You can see examples of accounts and measures in the tables on the right
00:07:24 where we have account, and a distance above, as two separate columns. And in the case of
the account,
00:07:30 we have this dimension called account and what would be the column names
00:07:35 become members in this dimension, and we have interleaving values on the value column.
00:07:44 You can see a really clear example here. In both cases,
00:07:48 we're showing the same data once as measures and again, as accounts.

2
00:07:54 In both cases, we have two dimensions. In the upper model, we have two measures,
00:07:59 we have a count and we have a distance, and we have three rows of data.
00:08:04 In the lower table, we have actually three dimensions. We have our month and our activity
again,
00:08:11 and we also have the account dimension, the members being count and distance,
00:08:16 and we have a single value column. And note here that count and distance are interleaved.
00:08:23 And for every occurrence of either of them, we have a separate row.
00:08:29 You need, of course, a lot more rows of data to store the same information when you're using
accounts.
00:08:35 However, for certain situations, certain financial analytics or planning,
00:08:42 you would prefer to use accounts rather than measures. In most analytics, you'll use
measures.
00:08:51 Structure of models. So if you look at the picture on the right,
00:08:57 in the blue box in the center, this is your data foundation,
00:09:00 or what's colloquially known as a fact table. And surrounding it,
00:09:06 you have the definitions of all the dimensions used in the model. In the language of SQL,
00:09:13 each of these dimension tables, each of these dimension definitions
00:09:18 is what's known as normal. So each dimension member occurs exactly one time.
00:09:26 And it's in these tables where you define the dimensions. And then in the center fact table,
00:09:32 you are not normalized in the language of SQL. You just simply pour your data in there
00:09:38 and you can repeat your data over and over again as you please. However, you have what's
known as a foreign key constraint there,
00:09:47 meaning that you cannot write any data into the fact table that doesn't also have corresponding
dimension data
00:09:53 in the appropriate table. This is what's known as a star schema.
00:09:57 Most analytic models use the star schema. All planning models use the star schema.
00:10:03 There are exceptions to this rule and we'll get into them later.
00:10:09 Data transformations. Transformations are the third leg of data models.
00:10:16 You start with a table of raw information, and at the end, you need to give it
00:10:20 some sort of semantic meaning. And this process of transforming your data
00:10:25 is known as data wrangling. Look at the two tables on the right-hand side.
00:10:31 Notice that they really show the same information, but the table above is a bit of a mess.
00:10:38 There's no dimension for date. There's just simply three columns.
00:10:43 They use inconsistent formats for storing the data. And so if you wanted to turn these three
messy columns
00:10:53 into a single, meaningful date dimension, you would first need to normalize all of the,
00:11:00 you need to transform them all so they're using the consistent format,
00:11:04 then you would need to concatenate them together, and lastly, declare that as a date
dimension.
00:11:09 Any combination of a data connection and wrangling is known as an import job.
00:11:20 There are two basic strategies to data transformations. You can do extract, transform, load,
00:11:27 and you can do extract, load, transform. The main difference between these two strategies
00:11:32 is when you do the transforming, do you transform your data before you store it or after?
00:11:39 If you're storing it in a star schema, you have to transform your data before
00:11:42 and then put it into star schema. And if you're not using a star schema,
00:11:46 you can transform your data afterwards. This picture here shows the difference.

3
00:11:52 So the upper workflow has an ETL, so extract, transform, load. So we take the data out of the
original connection,
00:12:02 the original view, we transform it as we need to,
00:12:06 and then we store it. And then lastly, the runtime view is based
00:12:09 directly on what's stored in the model. In the example below,
00:12:15 we bring the data in, we store it as we brought it in in its original form,
00:12:20 and we only transform it when we're actually going to use the data at runtime.
00:12:29 There are two basic ways of going about creating a model. You can do it structure first,
00:12:36 or you can do what's known as data first. They both fit their name.
00:12:41 So in structure first, you think about the structure of the data
00:12:45 that you need to work with. You define that structure of data,
00:12:50 and then, afterwards, you transform the data and load it into the structure
00:12:56 that you defined. And in the other approach, data first,
00:13:01 you start with your data, you do any transformations on it that you feel you need to,
00:13:06 and you build your model around the data as you have it in front of you.
00:13:14 There are three types of native model in SAP Analytics Cloud.
00:13:19 There's the classic account model. You can create this using either structure-first
00:13:24 or data-first modeling approaches. The import workflow is an ETL workflow,
00:13:29 because it uses a star schema. So you have to extract, you transform,
00:13:33 and then that gets loaded into the star schema. And it uses accounts only.
00:13:39 And over time that will be superseded by the new model, which also uses a structure-first
00:13:45 or data-first modeling approach. It also uses ETL import,
00:13:51 but it can use both accounts and measures. And lastly,
00:13:57 you have the dataset and the dataset's a bit different than the other two
00:14:01 in that it is data first only. There is no structure-first approach to creating datasets.
00:14:08 It uses an ELT import workflow. So import the data,
00:14:13 you leave it untransformed, then you only transform it when you're going to use it.
00:14:18 And it only uses measures. And datasets are primarily used for ad-hoc analytics,
00:14:23 and sometimes they're used for prototyping. We have additional ways to use models as well.
00:14:34 SAP Analytics Cloud can also delegate modeling to a remote SAP HANA system
00:14:41 or SAP Business Warehouse or Data Warehouse Cloud. Now for the demo.
00:14:52 Here, you can see that I am in my SAP Analytics Cloud tenant.
00:14:58 Along the left-hand side, I have a navigation bar, which gives me access to all of the different
modules I need
00:15:06 in order to work with SAP Analytics Cloud. So I've got the home module where I am right now.

00:15:12 I've got my files. I can create and manage stories.


00:15:16 I can create and manage applications going down. I can manage translation,
00:15:21 I can manage data actions, I can manage security,
00:15:25 I can manage data connections, all of these other things.
00:15:28 And right here in the middle, I have the two places that are relevant to me in modeling.
00:15:34 The upper one is datasets, where I would create and manage datasets.
00:15:39 And right below that in the navigation bar, I have models, which is where I would create
00:15:45 and manage new models and account models. Thank you.
00:15:52 I hope to see you again in a few minutes for week one, unit two, datasets.
00:16:00 Okay, thank you, bye.

4
Week 1 Unit 2

00:00:05 Hello, welcome to week one, unit two. In the last unit,
00:00:10 we had a brief overview of how the course is structured and how to prepare for the coming
weeks,
00:00:16 as well as an overview of the basic terminology of models.
00:00:23 In this unit, I'm going to show you how to prepare a dataset. Datasets, to recall from last unit,
00:00:31 are data-first only. They use an extract, load, transform workflow,
00:00:36 so they only transform the data when it's used. And they are measures only.
00:00:41 They're primarily used for ad-hoc analytics, but you can also use them for prototyping.
00:00:48 Why would you want to create a dataset? You have some data on hand that you want to
analyze.
00:00:55 The job is probably a one off, or you have the luxury
00:00:59 of being able to overwrite the entire dataset later on if you needed to.
00:01:03 In which case you've got some data, you just need to get some information out of it.
00:01:07 Datasets are really fast and handy for doing this. You have a predictive scenario,
00:01:13 you currently have to use a dataset. And if you're not certain what sort of view you might need,

00:01:19 you need the flexibility to tweak the wrangling and then go back to work on your dashboard
00:01:24 or your application. You want to do iterative wrangling and analysis.
00:01:29 You're not quite sure where your data is. You want to be able to transform your data,
00:01:33 analyze it and go back to transforming it, analyze it again. And essentially in these cases,
00:01:39 you need an extract, load, transform workflow. Lastly, you're not doing any planning.
00:01:48 Getting started. So the dataset module, as I pointed out in the last unit,
00:01:53 you can find it in the middle of the navigation bar on the left-hand side.
00:01:59 When you enter it, you can create new datasets
00:02:03 from a CSV file or from an Excel file, or you can create it from a connection.
00:02:13 If you create a dataset, it is always created via data-first modeling.
00:02:19 So there is no structure-first option to just create the model and then load the data later.
00:02:27 To create a new dataset from a file, you simply click on the Create From CSV or Excel File
button
00:02:35 and then select the location of your file, and then you're off to wrangling.
00:02:42 If it is a data source that you want to connect to in that particular case, you select from a data
source
00:02:50 if you do not have the desired type of connection, you can create one now.
00:02:54 If you already have maintained that connection, you can grab it, reuse it,
00:03:00 and then the next step after you've acquired your data is wrangling.
00:03:06 If you're within a story, you can also create a dataset as well.
00:03:11 You will create what's known as an embedded dataset. So it's hidden,
00:03:14 it's only visible within that particular story. To do that, if you are in a new story
00:03:22 and you don't have any data in it yet, you just simply click on the Add Data button
00:03:26 and then you start the dataset workflow. Or if you are already working in the story,
00:03:32 and you are in the data perspective, you can elect to add new data,
00:03:38 in which case you can add a new dataset or create a new dataset right there within the story.
00:03:52 Once you get into wrangling, you would have a screen
00:03:58 that looks something similar to this. It has a central spreadsheet display.

5
00:04:05 It has a tool bar and a navigation bar across the top. And it has a navigation panel along the
right hand side.
00:04:13 Above the navigation panel, you have the ability to toggle on and off the details
00:04:19 or to show the transform log. And within that details pane,
00:04:24 you can see information about the entire dataset or about an individual column.
00:04:33 The data columns within datasets are strongly typed. The data types are inferred when you
first import the data,
00:04:41 but you can always change the data type later on. The dimension data types available
00:04:46 are date, integer, number, string, time, and date and time. And for measures, you have the
option to do integer and number.
00:04:57 For dates, the date format is automatically detected, and this is actually pretty accurate.
00:05:04 It's very rare that you need to create a specific template for detecting a certain data type.
00:05:13 There are multiple types of transforms within datasets, within data wrangling.
00:05:19 For example, we have a set of standard transformations. And they are things like
concatenating columns,
00:05:29 splitting columns, changing values, and filtering out values.
00:05:35 The filter one is rather interesting, because it doesn't delete the data,
00:05:39 it simply filters it out when it's displayed. So this is a good place
00:05:45 to really show how an extract, load, transform workflow works in that you can filter out half of
the dataset,
00:05:54 and then go back and change that filter later on, and suddenly there's more data in the final
view.
00:06:02 In datasets, you can have hierarchies, but you could only have what's known as level
hierarchy.
00:06:07 So in a level hierarchy, you have one column
00:06:10 essentially acting as the parent column of another column. Of course, you can have multiple
columns
00:06:15 with subsequent hierarchies in it. The smart wrangler can also validate your data.
00:06:22 It can check it against the rules for the data types. So for example, if you have a numeric
dimension type,
00:06:28 and you've got character data in there, it'll warn you about this.
00:06:31 It'll also warn you if it doesn't fit other rules, for example, dates don't fit properly
00:06:37 or if you have data for geo dimensions that don't fit recognized geo hierarchies.
00:06:47 You can also perform custom transformation so there is an expression language in the smart
wrangler
00:06:53 called the wrangler expression language, very imaginative of us, yes.
00:07:00 And for this, you can write any sort of basically scripted transformations that you want. And
here you have quite a bit of help.
00:07:10 You have type-ahead value or input help. So you can create fairly complex expressions.
00:07:17 You've got advanced pretty printing, and you can create really, really pretzel-like
transformations on your data.
00:07:30 The lifecycle of datasets is fairly static, all right. You would create it
00:07:36 and then you have the raw data. You have the flexibility of transforming it at any time, be
warned,
00:07:43 you can also transform it after it's already in use, in which case you'll break the places that it's
in use.
00:07:50 But once the data is in, it's static. It can be reloaded,
00:07:54 you can reload an entire dataset if you want, and that's the reload approach.
00:08:01 Datasets, unlike other model types also have the ability to have data pushed into them.

6
00:08:08 So if you have an external data source that wants to push data to Analytics Cloud,
00:08:13 using the open APIs you can actually push data into a dataset that you've already created this
way.
00:08:25 Now for the demo. So here I am in my dataset module.
00:08:33 And I can elect to create a new dataset from source. In which case I will want to take one from
a Google Sheet.
00:08:43 And I will connect to my own private Google Drive account. In just a moment we will see,
00:08:53 I will take a national park visitation stats. And now I'm going to say,
00:09:01 use the first row as column headers. This data, the column headers I can use, they're valid.
00:09:08 It's not that the data just starts raw. So visitation stats,
00:09:15 and I'm going to call this openSAP. And we are now importing the data from this Google
Sheet.
00:09:36 So now that the data is in I can see my sample data has 77,000 rows, it has 18 columns,
00:09:43 has a sample size of 2,000 rows. The 2,000 rows is actually what's loaded into your browser.
00:09:51 So you can only see those first 2,000 rows. The other 77,000 rows are actually in the HANA
system,
00:09:57 underneath Analytics Cloud. We'll click this to go away.
00:10:02 And what we can see from this particular dataset is that there is no date dimension,
00:10:10 or no real viable date dimension. What this data contains
00:10:13 is it contains visitation data to United States national parks,
00:10:18 every national park, on a monthly basis from 1979 to the year 2020.
00:10:25 We do have a month column and a year column. So what I will do
00:10:29 is I will create a custom transformation here. Sorry, I will not geo enrich yet.
00:10:35 I will create a custom transformation. And we'll call this month.
00:10:43 And we are going to concatenate and we are going to concatenate the year column with the
month column.
00:10:58 The delimiter, I will use a dot, I could use a slash, both work. Oh, character line one, where did
I get my...
00:11:09 Oh, I accidentally took out the equals sign. So notice here that it caught the error in my
transformation
00:11:19 before I could execute it. So now, if I look in my transform log,
00:11:28 I can see that I have a new custom expression creating a month column.
00:11:35 Now I can go in back into my details and I can see that I have a month column,
00:11:42 and there's 492 issues. I wonder what these issues are.
00:11:46 It's 1979.1, 1979.2. Oh, I can see, because it guessed it was a numeric,
00:11:54 because it's all numeric data, it guessed that it's an integer.
00:11:58 Let's make this a... No, we don't want it to be a measure
00:12:08 we want it to be a dimension. And now we will go and transform
00:12:15 and turn this dimension into a date. So now when we go back to the details pane,
00:12:27 we can see we have no more validation issues on my month, and it has a valid date dimension
in my dataset.
00:12:37 Somewhere else that I may want to have a little bit of information, I can see here.
00:12:44 I can't see it in this initial 2,000 rows, but I can tell you that there are values within the state
that are not filled in.
00:12:56 There are some missing state values. So I can create a transform.
00:13:01 And if it is filtered... So filter, I want to keep data that matches an empty...
00:13:14 I want to keep data that matches an empty dataset. Sorry, oops, I wanted it to not match the
empty dataset.

7
00:13:21 So I can go to the Transform Log, I delete that transform. And I can fix my typo,
00:13:32 not matching an empty. I filter out the data that's not matching my empty.
00:13:40 And now when I look back in my transform log, I can see there are no transforms
00:13:48 for the dataset as a whole. But if I go over to my State column
00:13:56 and I look in my transform log, I can see here I delete all columns with the rows.
00:14:05 So this is a very, very, very simple example of creating a dataset. From this point here,
00:14:12 I can save this and use it at any time. Thank you.
00:14:19 I hope this session was helpful to you. And stand by, in a short bit, in our next session,
00:14:27 hopefully in a few minutes, we will cover creating new models.

8
Week 1 Unit 3

00:00:04 Welcome to week one, unit three. The last session was preparing datasets.
00:00:12 I hope that's still present for you. Now we're going to walk you through unit three,
00:00:16 Acquired Data Modeling. First, a brief overview of our acquired models.
00:00:23 Both acquired model types, whether the new model or the classic account model,
00:00:28 you can use a structure-first or a data-first modeling flow. Both of them use an ETL data import
workflow.
00:00:40 Depending on the model, you can use either measures and accounts or accounts,
00:00:45 and both models are primarily used for enterprise analytics and for planning.
00:00:52 So, when would you want to create a model? You need a stable data structure.
00:00:59 You know what kind of view you're going to need. You have the ability or the flexibility
00:01:07 or you need to use an extract, transform, load workflow. You probably want to use a model
00:01:14 if you have an enterprise analytics case or a planning use case.
00:01:18 And you need to use a model if you plan to import data from multiple sources
00:01:24 or if you want to have repeatable import jobs. Modeling, just like datasets,
00:01:33 you can find the modeling module in the middle of the left-hand side in the navigation panel,
00:01:38 just below datasets. Once you go into this module,
00:01:43 you can maintain any existing models, you can create new models from CSV files, Excel files,

00:01:50 or data connections, or you can create new structure-first models.


00:01:56 You also have the option here of creating remote proxies for HANA views or for SAP Business
Warehouse queries.
00:02:08 If you want to create a data-first model, you select either the icon
00:02:13 for create a model from a CSV or Excel file or from a data source.
00:02:20 Currently, as of December 2021, this automatically creates an account model.
00:02:26 Hopefully, by the time you are viewing this in February 2022 you'll have the option to choose
between a new model
00:02:33 and an account model. If you want to create a new structure-first model,
00:02:39 you simply create the new model with the plus sign, and then you're given the option
00:02:45 whether you want to create a new model or an account model, and then you enter the
structure-first modeling environment.
00:02:54 A little bit of orientation in the structure-first modeling environment. You have the star schema
center-top in front of you.
00:03:04 Any fact data that you have loaded into your data foundation will be displayed below. Both of
these views, by the way, can be toggled on and off.
00:03:15 On the far left-hand side, you have your measures and your dimensions that are in your
model.
00:03:23 And on the far right-hand side, you have a Details pane available to you
00:03:27 for the entire model or for a selected dimension or measure. So, measures can be added from
the Measure section
00:03:39 in the left-side navigation panel with the plus sign, and they can be edited in the Details panes.

00:03:46 You can get the data type, you can select your preferred aggregation type,
00:03:50 you can say if there's any required dimensions, scaling factors, decimal places, currency
types, and so on.
00:04:00 Same thing with dimensions, you can add dimensions via the plus sign.

9
00:04:04 Dimensions can be either private to the model, so in which case you would create a new
dimension,
00:04:12 or you would say add existing dimension, which is to use a public dimension that already
exists.
00:04:20 From the Details pane, you can do things like edit the ID and description
00:04:28 of the dimension, you can edit the data access controls,
00:04:31 which is the low-level security, essentially, who can see which dimension members
00:04:36 or the dimension as a whole. You can work on locking if you're using planning,
00:04:42 custom properties for the dimension, whether currency is enabled, these sorts of things.
00:04:47 You have control over everything in that panel. When you are in the dimension modeler...
00:04:55 So if you are in a model and you click on a dimension, you'll jump to the dimension modeler.
00:05:00 And if you are working with public dimensions, you would also jump directly to the dimension
modeler.
00:05:05 And in the dimension modeler you can load data manually and enter it manually,
00:05:12 you can toggle between a grid view and list view of the dimension members. I like, personally,
working with the grid view.
00:05:19 You can edit ID, descriptions, currencies. You can edit parent/child hierarchies.
00:05:26 For example, you could put in a parent/child hierarchy, bake it into the dimension.
00:05:32 Even though that hierarchal data never exists anywhere in the imported data, you're applying
the hierarchy on top of the import data.
00:05:42 And you can also set your per member data access controls. Import jobs.
00:05:50 So, in the upper-left corner of the modeling environment, you have these views, and you can
switch between them.
00:05:59 The model overview, you can switch to calculations, and you can switch between data
management.
00:06:05 And when you switch to Data Management, here you have an overview of all the import and
export jobs
00:06:11 that have ever been created and executed for this model, as well as a history of their execution

00:06:17 and whether they were successful, or whether there were problems with this.
00:06:22 And you can see it here. You can see the import job.
00:06:26 You can see the status of all the import jobs. Import jobs, by the way,
00:06:32 can be standalone, fire and forget, or they can be set up to a scheduled recurrence.
00:06:41 And in the right-hand side, the Details pane for the data management,
00:06:47 you can see every import job, and you can see here, in this example,
00:06:51 this particular model has had a lot of problematic imports in the past. And then finally, the very
last import was green.
00:06:59 This came about from problems, actually, in the data wrangling during the import job.
00:07:07 On that topic, load jobs can be re-wrangled and re-executed if you are using the new model.
00:07:15 If you're using the classic account model and you have a problem with your load job,
00:07:21 you have to start over again. But if you're using the new model, you can always go back,
00:07:26 you can always re-wrangle it and then re-execute your load jobs.
00:07:31 Little dirty secret, import jobs for the new model actually use datasets
00:07:38 behind the scenes, so you're taking advantage of that ELT transform,
00:07:44 and you can always transform later on, and still, you're mapping the result into your star
schema.
00:07:50 So you actually get, in a lot of ways, the best of both worlds.

10
00:07:58 Lastly, once you have created the wrangling for an import job, you're going to need to map the
resulting view from the wrangler,
00:08:07 from that dataset that you created in a wrangler, you're going to need to map it to the columns
in your model.
00:08:13 Once you've done this, you're good to go, and you can import the data into your model,
00:08:17 or you can even set up a scheduled import. Now for a demo.
00:08:26 We can see here, we are back in the Home screen of SAP Analytics Cloud.
00:08:31 I'm going to go to the modeler, and I'm going to create a new model from scratch
00:08:39 using structure-first workflows. And I will just select a new model.
00:08:46 And when it comes in, the first thing it tells me is my fact table is empty.
00:08:51 That's okay, I haven't loaded any data yet. And if I look above,
00:08:57 I can see a data foundation. I can see I automatically have a date dimension added to my
model.
00:09:04 And I have a version dimension also added to my model. That's because my particular user is
a planning pro user,
00:09:13 and by default, it's a planning model, so versions are activated as well.
00:09:18 We'll ignore that for now. What I want to do is I want
00:09:23 to create a couple of dimensions. I'm going to add existing dimensions
00:09:30 because I have actually maintained, I'm reusing the national parks data
00:09:35 that I just showed you in the datasets. And I have maintained all of my requisite columns
00:09:43 as public dimensions, and so I can easily reuse them. And so here, I will select Add Existing
Dimension,
00:09:51 add Generic, and I'm going to select State. This particular dimension here, StateWithRegion,
00:10:02 has the region of the United States added into the state as a parent-child hierarchy.
00:10:11 So I'm importing the state columns, and getting state data,
00:10:16 and then it's being put into a region hierarchy, even though that region is not in that column.
00:10:24 I could also, in other contexts, create a level hierarchy with region and state,
00:10:29 or I could import them separately. I've also maintained a non-hierarchal state dimension
00:10:36 and a non-hierarchical region dimension. I have other dimensions that I've also maintained,
00:10:44 and I will add them now. Generic, and I will say Park.
00:10:58 And this is the name of the national park. Very simple, and I will add a couple of measures.
00:11:06 The first measure that I will add will be Backcountry. Backcountry is going to be for the column

00:11:18 of the original dataset that gave me the number of backcountry campers in that park.
00:11:25 The National Park Service rations camping in the wilderness because they don't want it
overrun with people.
00:11:32 They want to maintain the ecology and they want to maintain the wilderness character.
00:11:38 And so these backcountry campsites are rationed. Sometimes you have to request them
months in advance from the Park Service.
00:11:47 Sometimes there's a lottery for the more popular ones in the popular parks. But because of
this, Park Service knows exactly
00:11:54 how many people slept in the backcountry that night, or at least how many people had a permit
for sleeping in the backcountry that night.
00:12:03 We're going to add another one, which is TentCampers. This is also in the import dataset.
00:12:15 We will add RVCampers, because the dataset distinguishes between those.
00:12:24 When you reserve a campsite in a national park, you give the information of
00:12:30 whether you're tent camping and the size of your tent or whether you're bringing an RV,

11
00:12:34 and then they direct you to an appropriate spot. They don't want to put a tent camper in an RV
spot,
00:12:40 because there's no soft ground for tent poles, and on a tent spot, there's no hookups for
electricity.
00:12:50 Okay, so we have Backcountry, TentCampers, RVCampers. We'll leave it at that for the time
being.
00:12:56 So now, we have a very simple data model with three measures and a couple of dimensions
for tracking information about visitation in my national parks.
00:13:08 And I will save this. I will save this as NPSVisitation_OpenSAP.
00:13:28 And I have saved this model. In just a moment, I can begin to edit and wrangle data.
00:13:43 So now, I go to the Data Management view. And in the Data Management view,
00:13:50 I can see here that I've never created any import jobs or export jobs,
00:13:54 and I obviously don't have a data timeline yet. So I'm going to create my very first import job
for this model.
00:14:05 Again, I'm going to go back to that Google Sheet that I used before in unit two for the dataset.
00:14:12 The target model is already fixed. NPS visitation stats.
00:14:26 And Next. So now, I'm loading my data.
00:14:40 And you can see here at the moment, it's not yet run. I've not yet actually run the import job.
00:14:48 It's also not scheduled yet. In the Last Known Status,
00:14:52 we still have an animated ellipsis because we're waiting for the data to be unloaded.
00:14:57 Remember, we are uploading 77,000 rows from the Google Sheet.
00:15:04 And now that it's uploaded, now it's been transferred
00:15:07 from one part of the Internet to another, we can set up our import job,
00:15:12 which means first we go in and we do some data wrangling. And just like with datasets,
00:15:18 we are back in our smart wrangler. It is the same smart wrangler, by the way,
00:15:24 that you use when you're editing datasets, because you are actually editing a dataset,
00:15:29 you're actually doing a little ETL thing, or ELT thing, and then that final view is being mapped
00:15:38 into your star schema. So you have an ELT modeling workflow or data load workflow
00:15:46 wrapped within an ETL data workflow. Remember that we do not have any valid data here for
certain states,
00:16:02 so we're going to apply that transform, create a transform, we are going to filter out empty
values.
00:16:13 And the other thing that we're going to do as soon as this is applied is we are going to create
00:16:19 that custom transform, and we're going to go ahead and create
00:16:22 that Date dimension again. Month equals...
00:16:32 and then we're going to concatenate year and month. Oops.
00:16:46 Curly braces is to create a set. Brackets is to select an existing column or to create a new one,

00:16:55 with a delimiter of a period. Click on Yes.


00:17:02 Again, we have the error. Why? Because we accidentally deleted the plus or the equals sign
before.
00:17:31 So now I am creating my new Month column. Remember, 492 issues.
00:17:37 Let's go and turn this into a dimension. So here, we're going to say your datatype is a date,
00:17:50 we're going to immediately transform it into a date. We go back, and we see we have no more
errors here,
00:17:59 and we should be good. So next, we're going to click on Next.
00:18:04 And we're going to come into the next step of our transformation, and we're going to map the
data, so we're going to...

12
00:18:16 Backcountry Campers gets mapped to Backcountry. UnitCode gets mapped to...
00:18:27 ParkName gets mapped to Park. StateWithRegion, where is State?
00:18:34 We'll map that in there. And our Month we'll map into a Date.
00:18:40 And for our next step, we go into the Next column. So I have selected all the columns from my
wrangled dataset
00:18:53 that I want to map into my model, and we are validating.
00:18:58 And I see here that we're going to reject 22,000 records. This is something to keep in mind
here,
00:19:07 and that is this, dates. I made a mistake in my model,
00:19:13 so what I'm going to do is I'm going to save and exit. Because it's a planning model,
00:19:19 it automatically has a valid date range. And I'm going to fix that.
00:19:28 So the import validation is helping me troubleshoot my model and my data. And here, it helped
me notice that I made a mistake
00:19:37 with my modeling. And if I go back into General
00:19:41 and I select Model Preferences, and I go to Planning and Time Range,
00:19:47 I can see that my valid date range is so the model is only valid for data that is between the 1st
of January 2021
00:19:56 and the end of December 2022. So essentially, from the time of recording,
00:20:02 back a year and forward a year. And what we need to do is we need to make that time validity
range go way back.
00:20:11 Maybe we'll go January 1st, 1971, and now we should be good.
00:20:19 I'm just going to save the model now before I continue. And then I'll go back in and I'll re-
wrangle my import job.
00:20:32 I go back to Data Management. Okay.
00:20:59 So, recreational visits, recreational hours, Next. So I saved my existing wrangling before,
00:21:06 so I still have my month, I still have my transformations, I still have my mapping, and now I
continue.
00:21:15 It's always a good idea, by the way, if you notice a problem with your import job,
00:21:21 save your existing wrangling. You don't have to re-wrangle everything,
00:21:24 you just start where you picked up last time. So now, I'm going to reject 75,000 records.
00:21:33 Well, I can deal with this later. For the time being, I'm just going to take what I can.
00:21:39 I'm going to run the import job. It's not perfect, but you get the impression now.
00:22:02 So we go back, now that we've imported data, and we go back into the model structure
00:22:07 and we look in the data foundation. You can see that I have, in fact, imported data into my
model now.
00:22:15 This concludes unit three, Acquired Data Modeling. I hope you will be back in a short bit
00:22:22 for unit four, Advanced Modeling. Thank you.

13
Week 1 Unit 4

00:00:05 Welcome to week one, unit four. In the last unit, I talked about acquired data modeling,
00:00:13 and in this unit, I will talk about advanced modeling. So let's get started.
00:00:21 One advanced modeling topic is geo dimensions. Geo dimensions, if you recall from way back
in unit one
00:00:30 when I first talked about dimension types, it's a very special dimension
00:00:35 specifically for handling geographic data. There are two ways to build geo dimensions within
Analytics Cloud.
00:00:43 One is to have a latitude and longitude in your import data, and then you would assign these
two to a geo dimension.
00:00:53 And the second route is to have area names or area designations and assign that to a
hierarchy.
00:01:04 Typically, with geo dimensions, if it's a hierarchal, name-based organization,
00:01:10 you can choose to create your hierarchy multilevel based on, say, if you have country data,
00:01:17 and then you have, within countries, you have region data, you can say, "Okay, I want this
column to be my country data
00:01:24 and that column to be my region data." However, if all of your data is from one country,
00:01:29 you can just say you have a fixed country and this is your region.
00:01:34 Region here being very generic. For example, in Canada it would be provinces,
00:01:39 in Germany it would be Bundesländer, in US it would be states.
00:01:44 And if you have latitude and longitude, you can bind them into a geo hierarchy.
00:01:52 Geo hierarchies can then be used in geo charts, and I will show you one example in the demo
in a moment.
00:02:00 You can create them via coordinates. Here, we're in the wrangler.
00:02:04 We have latitude and longitude. You would create a geo dimension based on coordinates,
00:02:09 and you would select the two dimensions. And creating them by area names,
00:02:19 you would, as I said, you select to create a geo dimension based on area name.
00:02:24 You can then elect, do you want to create it for a single country?
00:02:29 In which case, you only need to select the region or the subregion. Otherwise, you can do it for
the entire world.
00:02:37 Subregion, a good example for a viewer from the United States would be county.
00:02:43 So if you have three levels of data, you have, say, continent, then you have country,
00:02:51 and then you're all the way down to the county level. You could conceivably have all of these
together.
00:02:59 Import jobs. Import jobs can come from multiple data sources.
00:03:05 So you can actually bring data in from multiple places and do essentially what is a union join
00:03:12 right in the fact table. And so you can interleave data.
00:03:16 Here, in the screenshot example, you have a data source.
00:03:22 It was imported from the, in fact, the Google Drive example
00:03:26 that we've been using in previous examples. And then, we have additional data
00:03:31 that we imported from Excel files. So you can set up scheduled import jobs
00:03:37 from multiple sources and interleave data right in the fact table.
00:03:41 This is not a join, so we're not picking a join dimension. This is a union join.
00:03:46 So we're just simply adding new rows with each import job. Scheduled import jobs.
00:03:54 I had mentioned before that import jobs can be scheduled. You can run them once,

14
00:03:59 but you can also put them on a calendar, and you can say, hey, every hour, I'll pick up this
data,
00:04:05 or every day, or weekly, or monthly, depending on how frequently it's updated
00:04:10 and how urgently the data needs to be updated in your model. So for example, if you want it to
be reflected,
00:04:21 if changes in your original source, if you want them to be reflected fairly quickly
00:04:26 in stories and apps within Analytics Cloud, you may select an hourly update cycle.
00:04:34 But if it's a really big job, and you only want it to run once a day,
00:04:39 say, at three o'clock in the morning when everybody's asleep,
00:04:41 well, then you would say daily, and then you would select 3 AM for your execution time.
00:04:52 Tip, errors and scheduled import jobs. Recall from unit three,
00:04:57 we had those errors on the import job. Well, you will see them,
00:05:02 if they're scheduled, you'll see the same sorts of errors. And if you're working with the new
model,
00:05:08 you can't do this, unfortunately, with the classic account model,
00:05:11 but if you're working with the new model, you can always open the wrangling job from that
import job.
00:05:18 You can always open the wrangling, fix the wrangling, and re-execute the import job and go
back.
00:05:24 And so this way, if you have problems with your import jobs, you can fix them so that at a later
date
00:05:30 they also function correctly. This means that existing load jobs
00:05:35 can be edited and re-executed. Another very important tip,
00:05:42 learn the wrangler expression language. A really good example.
00:05:46 People often ask for a feature. They want to have a last refresh date feature.
00:05:53 They want to know when a particular record in the fact table was loaded into the fact table.
00:05:59 It's a reasonable request. You can create this right now yourself
00:06:06 with the Smart Wrangler in the import job. So the trick is you add a column in your model,
import date,
00:06:16 and then, in the import job, you write the expression, you create in square brackets
00:06:23 because you're creating a new column, [AcquireDate] = now,
00:06:27 and the now expression, or the now function, in the wrangler expression language
00:06:32 adds the current date. And so you get a column filled with the current date,
00:06:38 and then you map it to this AcquireDate column on the mapping step of the import job.
00:06:44 And voila, every single record in your fact table now also contains the date that it was
refreshed.
00:06:54 You can do it yourself, and it takes about 30 seconds. Here, I'll give you a quick demo
00:07:03 of the things we just talked about. In this particular query,
00:07:09 we just showed a screenshot of it a moment ago, and you can see here that I have my Google
Drive import job.
00:07:19 I have my Excel, or one of my two Excel import jobs.
00:07:26 It was executed successfully, imported 20 rows. And in this particular case,
00:07:31 I imported another 20 rows from a similar Excel file. If we go back to the National Parks
Visitation one,
00:07:39 you can see here that this is on a scheduled load job, and so it has executed once a week
00:07:47 for the past couple of months. And we can go through here,
00:07:51 and we can look at its scheduling, and you can see its recurrence is weekly.
00:07:58 The start date it began, we began importing this data on the 2nd of November 2021,

15
00:08:05 and it will continue to execute through the end of January. We're not really updating this data
very frequently.
00:08:12 I can change the end date, however, to run in 2025, for example.
00:08:21 So now, my scheduled weekly update will run for the next three, four years.
00:08:30 Which is good, because some time in winter the National Park Service will update their data,
00:08:37 and they'll include 2021 visitation data, and we'll want to bring that into the model as well
00:08:44 as soon as it's available. In this tab here,
00:08:51 we have a geo dimension created from an area ID.
00:09:00 So here, what we did, this is a dataset, and I went in and I said, enrich by area name,
00:09:07 and then we selected the geo ID. And if you look in its geo,
00:09:15 if you look in its dimension here, you can see that the geo ID, we have a hundred,
00:09:22 we have lots and lots of values for individual data. I can create another.
00:09:31 And here, you can select the country. And I selected the geo ID country,
00:09:37 or we can select specific countries. And here, I created the country.
00:09:45 Here, we used the geo ID, and this is how we created the geo dimension
00:09:50 for this particular dataset. When we use the dimension, when we use this geo dimension,
00:09:56 you can see here, on the map, you can see. Now, this is older data that was uploaded early in
2020,
00:10:04 so mid-2020, so it's got relatively old COVID data.
00:10:08 But you can see here, you can see on the map, with the choropleth on the map,
00:10:15 you can actually see a visual representation of the data here, what we're showing is we're
showing deaths
00:10:22 in Europe and North Africa from COVID-19. And this is, we're using this geo ID dimension
00:10:32 to match with the choropleth, and then we're using the Deaths column in the dataset here,
00:10:41 we're using the Deaths column in the dataset to show the total number of deaths.
00:10:46 And because we have not filtered the data to a particular date range,
00:10:52 we're taking the entire dataset, and we're aggregating, we're summing the data for the entire
dataset.
00:11:00 So, thank you, and I hope you'll join me in a short bit
00:11:04 for unit five, Calculations.

16
Week 1 Unit 5

00:00:05 Hello, welcome to unit five. In the last unit,


00:00:08 we talked about some advanced modeling topics within SAP Analytics Cloud.
00:00:13 And now, in unit five, we're going to talk about calculation topics.
00:00:18 The first topic is that of calculations that are directly inside the model.
00:00:24 In a later unit, in a later week actually, you're going to create calculated dimensions
00:00:32 and calculated measures within a widget. But you can also create them directly in the model,
00:00:38 in which case, there you have a calculated measure and it's reusable over and over, and over
again.
00:00:44 So, this is a really good place, especially if you have a calculation
00:00:47 that you want to reuse repeatedly. You want to make it available, perhaps to other people,
00:00:53 building stories and applications. You can put your calculation there, right in the model,
00:00:58 add it as a new measure and then, essentially it's used as a new measure within the model.
00:01:05 There's a long list of function groups available to you when you were, when you're creating
calculations in the model like this.
00:01:14 So, you can use mathematical operators, conditional operators.
00:01:17 For example, if. If statements become quite important,
00:01:21 say in situations where you potentially could have zero values and you want to avoid, say,
00:01:27 a divide by zero situation. You've got business functions.
00:01:31 You've got lookup and reference. Lookup and reference are very important groups of functions

00:01:35 because you would use these when you want to do time comparisons.
00:01:40 For example, you want to have a year-on-year comparison between the value of sales
00:01:47 for this year versus the value of sales for last year. Well, then you would use,
00:01:53 if it's measures that you're comparing, you would use a reference.
00:01:57 And if it's accounts that you're comparing, you would use lookup functions
00:02:01 to create the calculated delta between the year-on-year values.
00:02:06 You've got logicals of functions, you've got inverse functions,
00:02:09 string functions, conversion functions, and lastly, you've got date and time functions.
00:02:17 You also have data actions. Sometimes, you'll hear the buzzword advanced calculations.
00:02:24 Advanced calculations live within data actions. Data actions do not live in the model.
00:02:29 Data actions by definition are public. And in fact, they are edited in their own module
00:02:35 within Analytics Cloud. You see that module.
00:02:38 It's a couple of steps down below the modeling area, where you can work on data actions.
00:02:43 And certain things that you have available to you with data actions. Things like copying data
within a model,
00:02:50 cross-model copying, currency conversions, advanced formula scripts,
00:02:57 as I just mentioned. They can be executed from a story.
00:03:01 They can be executed from an analytic application. In fact, you can execute them from a script

00:03:06 within an analytic application. Or you can even schedule them


00:03:10 and just run them by themselves. So you can, for example, use data actions
00:03:15 to import data from a source and mix data together, perhaps,
00:03:20 and create a merged model just entirely behind the scenes using data actions.
00:03:30 Here, I will give you a quick demo of calculations within SAP Analytics Cloud.

17
00:03:38 So, we can see here the model that we created in unit three. And recall, it was a fairly simple
model
00:03:45 based on data from the National Park Service. It has three measures,
00:03:52 it has backcountry, the backcountry campers, it has tent campers, and it has RV campers.
00:04:00 And we're going to now go into a perspective that we skipped past before in unit three.
00:04:07 And that is the calculations perspective. And we're going to create a new,
00:04:11 simple calculation for this model. Taking a bit of moment to get an orientation
00:04:18 in this perspective, I can see here. I can see I have a calculated measures tab.
00:04:24 I also, for reference, have my measures available to me. My normal model measures available
to me.
00:04:31 Here, I have the editing area for my formulas. Here, I have a preview for my formulas.
00:04:39 And in the right side, in the Properties pane, in the navigation pane, in the properties,
00:04:45 I have the properties for my calculated measure. So, let's add a very simple calculated
measure.
00:04:53 We will call this measure Campers. So, campers will be everybody who spent the night
00:05:02 in a tent or an RV in the park, whether they were in a campground
00:05:06 or in the backcountry. And this is going to be a very simple calculation.
00:05:13 This is going to be TentCampers, plus RVCampers, plus Backcountry campers.
00:05:30 And there we go. We have a valid calculation.
00:05:37 We have a new measure and it is the sum of backcountry, tent, and RV.
00:05:43 And that's all there is to it. Of course, we can create much more sophisticated measures.
00:05:49 I may want to include logical if statements. I may want to include lookup tables.
00:05:56 But this is essentially the hello world calculate measure for a new model. This concludes unit
five, Calculations.
00:06:08 In our next unit, unit six, we'll talk a little bit about data security,
00:06:12 and I hope to see you there. Thank you, bye bye.

18
Week 1 Unit 6

00:00:05 Hello, welcome to week one, unit six, Data Security. There are two tracks that you can take to
securing your models
00:00:16 and the folders that contain those models. And the first one is analytic privilege for models and
analytic privilege for folders.
00:00:25 And the second track is access, individuals sharing access to models
00:00:31 and the folders that contain them. The analytic privilege settings,
00:00:37 that's handled through security in the security module, it is a general tenant-wide setting for
entire roles.
00:00:46 So you can allow entire roles say, for example, BI users, planning users, and so on,
00:00:54 or the HR department, or the finance department, you can give them roles,
00:01:01 analytic privilege roles that allow them, for example, to read models, but perhaps not create or
edit new models.
00:01:10 You may give them access to the public folder but not to private folders or vice versa.
00:01:17 The settings for the values are create, read, update, and delete.
00:01:23 And you would set these for the entire user role in security.
00:01:30 Meanwhile, on sharing, for sharing of models and sharing of folders,
00:01:35 there you have three levels of control, and this is the creator of the model that would set this.
00:01:42 You can set view, edit, full control, and there's a fourth option, which is custom.
00:01:48 And if you choose the custom role, you can cherry-pick from within
00:01:53 the view, edit, and full control. And if you see the screenshot
00:01:57 from the right-hand side of the screen, you can see when you have full control
00:02:02 or when you have custom access open, you can see that the view is not just simply the ability
00:02:08 to see the model, it's the ability also to copy the model,
00:02:11 say to create another copy of the model, to view comments, and to add comments.
00:02:18 You may, for example, want to disable the ability to add comments,
00:02:21 or you may want to disable the ability to copy a model and create a cloned model from the one
you're working with.
00:02:29 Conversely, in the full control you may want to give your users or other users
00:02:35 the ability to completely view them, to completely edit them,
00:02:39 but maybe not to share your model for one reason or another. Your two basic sharing
strategies are
00:02:50 direct access via the model itself. And for this, you would set a level of access
00:02:58 to individual users or teams. It won't be shown in the catalog,
00:03:04 but it will be accessible in folders. So this is a folder-based access.
00:03:07 If you look at, from the two screenshots on the right-hand side, this is what the sharing control
on the upper screenshot looks like.
00:03:17 Here, we're at the model within the folder and we're setting our sharing settings there.
00:03:23 The other option is to share it via the catalog. And again, you can select you which users
00:03:29 and which teams have access to the model. But in this particular case,
00:03:34 it is shown in their catalog on the home screen. You can also secure individual dimensions.
00:03:43 And this is very, very useful if you want to secure particular
00:03:49 member data or particular data within a model. You can enable row-level security this way.
00:03:56 And how you would do it is you would go into the data access controls of dimensions,
00:04:02 so you enable data access controls, and then you go into the security settings
00:04:07 and you would enable or disable read or write if it's a planning model

19
00:04:13 and the user has planning privileges, you would then enable or disable
00:04:19 read and write for individual users or for groups. This allows you to set certain values
00:04:26 within the dimension to being visible only to certain users. For example, if you have an East
and West sales region,
00:04:34 perhaps you don't want the users in the West region looking inside the data,
00:04:39 the deep data, for the East region and vice versa. Now for a quick demo.
00:04:52 We can see here, we're currently at the home screen for our tenant, and to access the analytic
privileges,
00:05:05 we would go to Security and then we go to Roles, and then we can look inside the security
settings
00:05:12 for an individual role. And here I'll select the student role.
00:05:16 So when you're working in this tenant, the users that you're using are the student users.
00:05:21 And so we're currently working, looking at the student role that is set up
00:05:26 on the workshop tenant. And we can see here that these users
00:05:30 currently have the access, they have create and read access to public files. On their private
folders they can also delete,
00:05:43 and they have the ability read both analytic and planning models, but they cannot create new
models.
00:05:54 And that is that user role's analytic privilege settings. When we go into the model settings
00:06:05 and we open the model that we were working on before, here, I have the ability to share the
model.
00:06:27 And now within the sharing, within the sharing dialogue, I have the ability to allow particular
users or teams to view this.
00:06:36 And perhaps I want these student users, or maybe a particular student user.
00:06:44 I'll allow student 01 to view my model. When we're working with data access controls for
dimensions,
00:06:54 we can see here that if we turn on data access control for a dimension,
00:07:00 I can go up here and for any particular member in the dimension,
00:07:04 I can allow them to read or write to that dimension if this is used in a planning model.
00:07:13 And I can restrict. For example, I can say that student 01
00:07:17 can read Acadia, but they cannot read the others or student 02, and so on.
00:07:26 Thank you. In our next unit, we will cover live data models.

20
Week 1 Unit 7

00:00:05 Hi and welcome to week one, unit seven of this openSAP course.
00:00:08 My name is Katryn Cheng and I'm a solution manager for SAP Analytics Cloud. In the previous
unit, Dave walked you through data security.
00:00:16 This unit, I'll be walking you through live data modeling. So let's get started.
00:00:22 Like Dave mentioned in unit one, we have the ability to connect live to certain data sources,
00:00:26 such as the ones you see here in this list, and delegate the modeling to the source systems.
00:00:32 Live data modeling is when you create a data model on top of a live data connection.
00:00:38 Now, there are many reasons for why you would want to do this,
00:00:41 the first one being for access to live data. Through this method, there is no data replication,
00:00:47 meaning no data latency. That means you can connect directly to the source system
00:00:52 and get the latest data for your stories. The second reason is for security.
00:00:56 If you have an on-premise system sitting in your source system behind the firewall,
00:01:02 you might want to keep it there. You don't want to move your data anywhere else.
00:01:04 So this allows you to connect to that data without having to move it anywhere,
00:01:09 therefore allowing you to keep your data safely behind your firewall.
00:01:14 Now please note, throughout this unit, I will not be going to too much detail
00:01:18 with configuring live data connections. If you want to learn more about configuring live data
connections,
00:01:24 I recommend checking out the openSAP course on SAP Analytics Cloud authentication and
data security.
00:01:33 So let's talk a little bit about the architecture here. For on-premise data sources such as SAP
HANA, SAP BW, and S/4HANA,
00:01:42 we use a component called the SAP Cloud Connector, which allows us to create the
connection
00:01:48 between the end-user client and the back-end data source system.
00:01:55 For cloud data sources, SAP Analytics Cloud can connect directly to the cloud source
00:02:01 safely and securely, so we don't need any component in between.
00:02:04 Again, this is all configured by your SAP Analytics Cloud IT administrator,
00:02:09 and I won't be going to too much detail, so check out the openSAP course
00:02:13 if you're interested in learning more. Now let's talk about the modeling part.
00:02:20 I mentioned earlier that we have the ability to delegate the modeling to the source system.
00:02:25 So what that really means is when we create a live data model,
00:02:30 the actual real model is the model that we're connecting to in the source system,
00:02:34 meaning a HANA calculation view or a BW query. That's the source model.
00:02:40 When we build an Analytics Cloud live data model on top of that, we're really creating a proxy
model.
00:02:45 And the purpose of this proxy model is to tell Analytics Cloud where to get that query.
00:02:50 It knows the connection type, the metadata behind the scenes
00:02:55 and really helps Analytics Cloud understand where to get that information.
00:03:01 All live data connections require a live data model in order for these content creators to
connect to it
00:03:08 except for SAP Data Warehouse Cloud. With SAP Data Warehouse Cloud, content creators
00:03:14 can actually connect directly to Data Warehouse Cloud models without having to create a
proxy model
00:03:19 within Analytics Cloud. Now let's go through a little bit of the workflow.

21
00:03:25 So there's four steps for an on-premise system, and I'll include some of the IT driven ones
here.
00:03:29 So the first one would be configuring the Cloud Connector. I already talked about this
component.
00:03:34 It's a physical component that sits in your landscape and creates the secure connection for the
client
00:03:40 and the back source system. After that part is configured,
00:03:45 then within Analytics Cloud, you would create a connection. So a connection is basically an
entry
00:03:51 into the Analytics Cloud system, allowing others to build the data models on top of that.
00:03:57 So then, of course, comes creating the proxy model and then allowing the content creators
00:04:03 to tweak the settings within the model. And I'll go over that in the demonstration later on.
00:04:08 So this is for the on-premise data source. With the SAP HANA Cloud variant, it's a little simpler

00:04:14 so there is no IT step and no component needed because this is a cloud data source.
00:04:18 So what you would just need to do as an Analytics Cloud power user or administrator
00:04:24 is add the connection to Analytics Cloud and then build the proxy model
00:04:29 and then tweak the model settings. And I say tweak the model settings a lot.
00:04:33 This is something that you would need to check the help guide because we are continuously
making changes
00:04:37 and enhancing the capabilities here so it's best to always check the latest help guide
00:04:42 for the latest details. And last here is the process for live Data Warehouse Cloud,
00:04:50 which is a lot simpler because there's no model needed. So here, all you need to do is add the
connection
00:04:55 to the SAP Data Warehouse Cloud and then create the model or sorry, connect to the system
from your story
00:05:03 and then create your story and that's it. So very simple there.
00:05:08 Now with a very short introduction, let's get into the actual demo part.
00:05:12 The process and experience of building a live data model on top of these live data connections
is very similar.
00:05:17 So what I'll be showing you is a demo of creating a live data model on top of a BW system.
00:05:24 Now please note, just due to the nature of live data sources, we do not have this available
00:05:29 in the openSAP Analytics Cloud tenant for you to play with. So this data model is just for you to
watch and learn from.
00:05:39 Okay, like I just mentioned, in this demo, I will show you how to create a live data model with
an SAP BW system.
00:05:45 To access the modeler, we can click the modeler icon from the navigation menu on the left.
00:05:50 Then select Live Data Model to begin creating our model. We get then prompted for the details

00:05:55 of our live data connection. And for this I'll select SAP BW for my system type,
00:06:02 then choose my BW connection, and finally the name of my BW query.
00:06:10 Once we click OK, we are then taken directly to the live model in the modeler.
00:06:16 The modeler has two main pages for live data models. First, the measures page, which shows
us
00:06:22 all the available measures retrieved from the query. Here I can change the measure
descriptions
00:06:29 and also change the default scaling factor and default decimal places,
00:06:33 which can both be overridden during story design time. Here you'll notice that the formula
column is grayed out,

22
00:06:39 and that's because custom calculations is not supported with live BW data models.
00:06:44 Creating custom calculations is only supported for live HANA data models
00:06:47 and acquire data models at the time. Now moving onto the dimension page,
00:06:52 we can see all retrieved query dimensions with their technical names.
00:06:56 We can see and change the descriptions of these dimensions and this is what gets displayed
during story design time.
00:07:03 And in the third column, we have the ability to organize the dimensions into groups.
00:07:09 For example, we can define a time group and move all of our time-related dimensions into this
group.
00:07:15 As I create the group, you can see a preview of it in the right-hand side.
00:07:21 Organizing dimensions into groups makes it easier for story designers
00:07:24 to find the dimensions needed during story design time. Now that we've gone over the
measures and dimensions pages,
00:07:32 let's get into the different preferences and settings for the model.
00:07:35 We can access the preferences menu by clicking the tools menu in the top left corner.
00:07:40 Here we can add a description for the model, which gets displayed in the files list when
browsing.
00:07:45 Underneath the description are the details of the live data connection we are currently using.
00:07:50 And under language, we can switch on model translation to have the model, dimension, and
measure descriptions
00:07:56 translated to other languages by a translation service. Under access and privacy, you can
enable
00:08:03 restrict export to CSV. This disables the ability for users
00:08:07 to export and download model data from either the story interface or the files list.
00:08:14 And last but not least, we have two optional settings for data and performance.
00:08:17 The first one is optimized story building performance. By default, when building a story with a
live data model,
00:08:24 every change in the builder panel results in the query sent back to the data source
00:08:28 to update the widget. This can cause unnecessary load,
00:08:33 multiple queries, and slower response times. To prevent this from happening, turn this option
on
00:08:39 to improve performance and disable the automatic queries. Currently this option is available for
all live data models
00:08:45 except for BI Universe and Data Warehouse Cloud models. The second and final option is
optimized performance
00:08:52 for two structured queries and this is valid only for SAP BW models.
00:08:57 Please check the help guide for more details on this setting. Back in the tools menu, you can
see that Variables is grayed out
00:09:05 and this is because it is currently not possible to add custom variables to a live data model.
00:09:13 Next we have the ability to set the version information for the model's dimensions and values.
00:09:18 This allows you to map any of the imported dimensions and values to selected versions, like
actual, budget, planning, forecast, and rolling forecast.
00:09:29 Now let's go ahead and save the model. Now that the model's been saved, I can now begin
00:09:39 immediately building my story or analytic application. Let's create a canvas story.
00:09:51 You're immediately presented with the BW query variable prompt.
00:09:55 We can just leave it blank and click Set. Then choose a table for the data.
00:10:00 Now you can see the story slowly building out. And in the bottom right, in the dimensions list,
00:10:05 you'll see the dimension group called time that we defined earlier in the model.

23
00:10:11 And that's it for our demo. Here are additional resources to help you with your learning journey.

00:10:17 Now as a reminder, we are continuously enhancing and adding new capabilities to Analytics
Cloud,
00:10:22 so please check these resources for the latest updates. Now this concludes unit seven and the
videos for week one.
00:10:29 I hope you've enjoyed our content and I wish you the best for the weekly assignment.
00:10:33 Of course, if you have any questions, please feel free to bring them up in the discussion forum.

00:10:38 Next week we'll start on week two for story creation. I'll see you then.

24
www.sap.com/contactsap

© 2022 SAP SE or an SAP affiliate company. All rights reserved.


No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company.

The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietar y software components of other software vendors.
National product specifications may vary.

These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable
for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements
accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentat ion, or to develop or release any functionality
mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platform directions and functionality are
all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation
to deliver any material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially fro m expectations. Readers are
cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions.

SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other
countries. All other product and service names mentioned are the trademarks of their respective companies. See www.sap.com/trademark for additional trademark information and notices.

You might also like