https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/Big-Data-blog-posts.xml SAP Community - Big Data 2024-05-20T11:10:20.396937+00:00 python-feedgen Big Data blog posts in SAP Community https://community.sap.com/t5/technology-blogs-by-members/what-is-sap-data-intelligence-definition-and-benefits/ba-p/13558446 What is SAP Data Intelligence? - Definition and Benefits 2022-11-04T10:14:03+01:00 vanmonteiro https://community.sap.com/t5/user/viewprofilepage/user-id/40452 In order to share a little bit of knowledge that I acquired studying SAP Data Intelligence, I decided to create this post and I hope to help and also be helped with good comments to include more information.<BR /> <BR /> <HR /><BR /> <BR /> <STRONG>Getting started with SAP Data Intelligence.....</STRONG><BR /> <BR /> SAP Data Intelligence improves the efficiency of Corporate Data Management, and is presented by the vendor as a single solution to innovate with data. It provides data-driven innovation in the cloud, on premise.<BR /> <BR /> Aimed at transforming the scatter of distributed data into vital data insights to deliver innovation at scale. It is a data management solution that connects, discovers, enriches, and orchestrates disjointed data assets into actionable business insights at the enterprise scale. It enables the creation of data warehouses from heterogeneous enterprise data, the management of IoT data flows, and facilitates scalable machine learning.<BR /> <BR /> <STRONG>SAP Data Intelligence</STRONG> enables you to leverage enterprise applications to become an intelligent enterprise and provides a unified way to manage, integrate, and process all your company's data.<BR /> <BR /> <STRONG>SAP Data Intelligence Cloud</STRONG> is the cloud equivalent of the on-premises SAP data intelligence. This cloud-based service syncs with the roles and responsibilities of data engineers, data stewards, data scientists, and data architects. Essentially, any user can maximize the data spread across the distributed hybrid landscapes, help to create data warehouses from mixed data, and simplify the management of data streams.<BR /> <UL><BR /> <LI>SAP Data Intelligence is available as a BYOL (bring your own license) model where it can be deployed on-premise in your own data center, on any hyperscale public (AWS, Google, Microsoft) or private cloud.</LI><BR /> </UL><BR /> <STRONG>Connectivity of SAP Data Intelligence with On-premise can be done:</STRONG><BR /> <UL><BR /> <LI>Cloud Connector</LI><BR /> <LI>Site to Site VPN</LI><BR /> </UL><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/10/Image-85.png" /></P><BR /> <BR /> <H5 id="toc-hId-1349476285">(Image source: SAP® Data Intelligence(Published by SAP))</H5><BR /> &nbsp;<BR /> <BR /> <STRONG>Intelligently Process Data</STRONG><BR /> <BR /> Connect data assets and transform them into business insights with features that help you:<BR /> <UL><BR /> <LI>Discover and connect to any data, anywhere, and anyway you need.</LI><BR /> <LI>Integrate and orchestrate massive data volumes and streams at scale.</LI><BR /> <LI>Streamline, operationalize, and govern machine-learning driven innovation.</LI><BR /> </UL><BR /> <STRONG>Build Trust in your data</STRONG><BR /> <BR /> Build trust in your through:<BR /> <UL><BR /> <LI>Discover and cataloging of distributed metadata, enabling a searchable data fabric.</LI><BR /> <LI>Profiling, preparing, and building a business glossary and business rules for your data.</LI><BR /> <LI>Continuous monitoring to ensure robust data quality.</LI><BR /> </UL><BR /> <STRONG>Perform Hybrid Data Management </STRONG><BR /> <BR /> With hybrid management, you can:<BR /> <UL><BR /> <LI>Centrally manage and process data wherever it resides.</LI><BR /> <LI>Automate and reuse on-premise and cloud processing engines.</LI><BR /> <LI>Manage complex data types across distributed environments.</LI><BR /> </UL><BR /> &nbsp;<BR /> <BR /> <STRONG>Benefits to Your Business</STRONG><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/10/Image-86.png" /></P><BR /> <BR /> <H5 id="toc-hId-1152962780">(Image source: SAP® Data Intelligence(Published by SAP))</H5><BR /> &nbsp;<BR /> <BR /> <STRONG>Architecture View</STRONG><BR /> <BR /> The figure below shows an architecture and overview of the different components made available as part of SAP Data Intelligence.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/10/Image-87.png" /></P><BR /> <BR /> <H5 id="toc-hId-956449275">(Image source: SAP® Data Intelligence(Published by SAP))</H5><BR /> &nbsp;<BR /> <BR /> <STRONG>SAP Data Intelligence&nbsp;Technical Details</STRONG><BR /> <BR /> Deployment Types&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On-premise, Software as a Service (SaaS), Cloud, or Web-Based<BR /> <BR /> Mobile Application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No<BR /> <BR /> Supported Countries&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Global<BR /> <BR /> &nbsp;<BR /> <BR /> <HR /><BR /> <BR /> Thanks for reading. Do comment with your views, I believe in regular feedback so that I can refine blogs for you all. 2022-11-04T10:14:03+01:00 https://community.sap.com/t5/technology-blogs-by-sap/knowledge-graph-with-job-recommendation/ba-p/13568551 Knowledge Graph with Job Recommendation 2022-11-21T09:57:52+01:00 tracy_cuixin https://community.sap.com/t5/user/viewprofilepage/user-id/42607 <STRONG>Applying the Knowledge Graph Concept to Improve Job Recommendations</STRONG><BR /> <BR /> With the rapid development of business, many companies start to deal with larger scale of data that contains more complicated relationships. And knowledge graph or graph technology is referenced more and more when people want to improve this situation. Therefore, in this blog, we want to introduce the basic concept of knowledge graph with some application examples.<BR /> <BR /> The concept “knowledge graph” has been used in literature very early. In 2021, Google announced a more modern introduction for the knowledge graph and its application with Google Search. [1] Today, the concept starts to have more applications on many business cases.<BR /> <BR /> But what is a knowledge graph?<BR /> <BR /> A knowledge graph is a database that uses a graph-structured data model to integrate data which includes not only data but also the relationships between the data (see Figure 1).<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/Picture1-29.png" height="124" width="391" /><BR /> <P style="text-align: center">Figure 1: Knowledge graph structure</P><BR /> As an example, let’s consider the sentence: Data Scientist is a position at the company SAP. And as we said earlier, if we want to represent the data graphically, we use nodes and relationships. So, if you look at this simple graph in Figure 2, it is a graph database showing some facts from the sentence above. For example, between the node ‘Job’ and the node ‘Company’, there’s a relationship called ‘from’. That represents the fact we mentioned earlier and explains how a graph database connects everything together in one graph.<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/Picture2-22.png" height="110" width="412" /><BR /> <P style="text-align: center">Figure 2: Knowledge graph structure with example</P><BR /> At SAP, we apply the concept of knowledge graphs to deliver business value. For example, the&nbsp;<A href="https://www.sap.com/about/company/innovation/icn.html" target="_blank" rel="noopener noreferrer">SAP Innovation Center Network</A> on the West Coast is working on a project to improve the job search results in SAP SuccessFactors. The team is building a knowledge graph related to job ads, candidate profiles, information about required qualifications such as skills and education, as well as details about the candidates such as degrees, years of experience, and more. By using a knowledge graph, we can support job matching so that candidates have a better experience when applying to SAP.<BR /> <BR /> <STRONG>Why We Need Knowledge Graphs</STRONG><BR /> <BR /> Some of you might be curious why knowledge graphs would be helpful in a recommender system. The power of knowledge graphs becomes clear once we start thinking about connections. When we want to use a model which contains many inter-relations between properties, knowledge graphs allow us to model the relationship with a very clear structure. For example, Figure 3 shows four kinds of nodes: job, skills, company and education. The relationships between these nodes provide us with abundant information from the graph.<BR /> <BR /> With such a graph structure, we have multiple new ways to improve job recommendations. For example, if a candidate applies for the Data Scientist position at SAP, he or she may also be interested in the Data Engineer job, as these two positions are offered by the same company, have similar educational requirements, and share some qualification requirements. Even though modeling this with stored data in a table structure is possible, it’s more difficult. Modeling such a structure in a graph structure database is easier to accomplish.<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/Picture3-17.png" /><BR /> <P style="text-align: center">Figure 3: Connections in Knowledge Graph</P><BR /> <STRONG>Components of Knowledge Graphs</STRONG><BR /> <BR /> Now let’s talk about the components of the knowledge graph we created. We would like to extract some key information from the job posting data as well as the resume data and put them into the knowledge graph. This way they can be used as properties of the job or candidates when we make recommendations.<BR /> <UL><BR /> <LI><STRONG><EM>Extracting the facts from unstructured documents</EM></STRONG></LI><BR /> </UL><BR /> There can be different information in a job posting, for example, education requirements, work experience requirements and skills requirements. We use natural language processing (NLP) techniques to extract the information and input it into our graph database. For more complex cases, other deep-learning models can be used, for example, question-answering.<BR /> <UL><BR /> <LI><STRONG><EM>Assimilation of facts</EM></STRONG></LI><BR /> </UL><BR /> When a candidate is getting a job recommendation and they would also get suggested skills related to the job. We found out that there could be some redundant information within these suggested skills. To provide a better match between job and candidate, our knowledge graph can also find out more relationships between skills and help to remove this kind of redundant information.<BR /> <BR /> For example, a candidate is exploring software engineer jobs, and get one job suggesting that the skills of java and object-oriented programming are related. For the candidate, this may be redundant information. Because we consider object-oriented programming as the hypernym of Java, as the word ‘object-oriented programming’ has a broader meaning under which more specific words like Java falls. And in this case, we might want to remove one of them in the recommendation here.<BR /> <BR /> We want to capture the relationship between ‘Java’ and ‘object-oriented programming’ and add it to our graph database, just like what Figure 4 is showing. And this can help us to recognize the relationships and remove the redundant information, which would provide a better job matching experience for our candidates.<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/Picture6-11.png" height="42" width="477" /><BR /> <P style="text-align: center">Figure 4: Hypernym Relationship</P><BR /> <STRONG>Methods to Capture the Relationship</STRONG><BR /> <BR /> One of the methods we use to capture the relationship between the skills are Hearst Patterns. These are hierarchical relations based on semantic information which we use to extract hypernym relations [2].<BR /> <BR /> Let me give you an example:<BR /> <BR /> Figure 5 shows the following half-sentence: Programming languages such as Python. Based on the keyword ‘such as’, we can see that ‘programming languages’ is the hypernym of the word ‘Python’. This is how we extract hypernym relationships from our job posting data.<BR /> <BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/Picture7-9.png" height="67" width="459" /><BR /> <P style="text-align: center">Figure 5: Hearst Pattern example</P><BR /> Another method we use to extract relationships between skills is&nbsp;<A href="http://globalwordnet.org/resources/wordnets-in-the-world/" target="_blank" rel="noopener nofollow noreferrer">WordNet</A>&nbsp;[3]. It’s a database which links semantic relations between words in more than 200 languages, including synonyms, hyponyms, and hypernyms. You can consider WordNet as a combination and extension of a dictionary. When you check a word with it, it can provide you with the hypernym of that word.<BR /> <BR /> <STRONG>Knowledge Graph Example Query</STRONG><BR /> <BR /> Now that you have an idea of what a knowledge graph is and what it can be used for, here are some examples queried from the graph. The graph is based on the job recommender system we mentioned previously. And Figure 6 and 7 are some examples about skills required by software engineers and data scientists.<BR /> <BR /> Hopefully you like this blog, and if you find the blog interesting, please feel free to share your thoughts or questions in a comment. And if you wish to know more about similar content, you can find other similar posts by clicking on the tags assigned to this post. Thank you for your reading.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/JOBBBB.png" /></P><BR /> <P style="text-align: center">Figure 6: Skills required by software engineers</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/jobbbbb.png" /></P><BR /> <P style="text-align: center">Figure 7: Skills required by data scientists</P><BR /> <STRONG>REFERENCES</STRONG><BR /> <BR /> [1] Amit Singhal. 2012. Introducing the Knowledge Graph: things, not strings.&nbsp;<A href="https://www.blog.google/products/search/introducing-knowledge-graph-things-not/" target="_blank" rel="noopener nofollow noreferrer">Google Blog</A>.<BR /> <BR /> [2] Indurkhya, N., Damerau, F. (2010). Handbook of Natural Language Processing. Chapman &amp; Hall/CRC. p. 594.<BR /> <BR /> [3] “WordNets in the World”. Global WordNet Association. Retrieved 19 January 2020.<BR /> <BR /> &nbsp; 2022-11-21T09:57:52+01:00 https://community.sap.com/t5/technology-blogs-by-sap/hands-on-tutorial-leverage-automl-in-sap-hana-cloud-with-the-predictive/ba-p/13556400 Hands-On Tutorial: Leverage AutoML in SAP HANA Cloud with the Predictive Analysis Library 2022-11-23T07:21:12+01:00 YannickSchaper https://community.sap.com/t5/user/viewprofilepage/user-id/45487 SAP HANA Cloud has recently been enriched with a new Automated Machine Learning (AutoML) approach. AutoML can be helpful for many different reasons, for example to give a data scientist a head-start into quickly finding a first machine learning model. Also, it is a great starting point to see what is possible with the data and if it is worth to invest more time into the use case.<BR /> <BR /> But isn’t there already an automated machine learning approach in SAP HANA Cloud?<BR /> <BR /> Yes, the <A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.06/en-US/hana_ml.algorithms.apl.html" target="_blank" rel="noopener noreferrer">Automated Predictive Library (APL)</A> is a proven and trusted approach in SAP HANA Cloud with proprietary content. Further, the APL adds very powerful feature engineering into the process before creating a machine learning model. If you are curious to give it a try, have a look at the following <A href="https://blogs.sap.com/2020/07/27/hands-on-tutorial-automated-predictive-apl-in-sap-hana-cloud/" target="_blank" rel="noopener noreferrer">Hands-On tutorial</A> by my colleague <SPAN class="mention-scrubbed">andreas.forster</SPAN>.<BR /> <BR /> The <A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.06/en-US/hana_ml.algorithms.pal.html" target="_blank" rel="noopener noreferrer">Predictive Analysis Library (PAL)</A> provides the data scientist with a huge variety of different expert algorithms to choose from. Now, PAL provides new algorithm pipelining capabilities and an AutoML approach on top, targeting classification, regression and time series scenarios. The new framework allows data scientist experts to build composite pipeline models of multiple PAL algorithms and with the aid of the AutoML engine, an automated selection of pipeline functions from data preprocessing, comparison of multiple algorithms, hyper-parameter search and optimal parameter value selection. Thus, expert data scientists can benefit from a tremendous productivity up-lift, deriving better PAL models in less time.<BR /> <BR /> Let’s take a look at a concrete example to see what is possible through this new approach in the PAL. The challenge will be to predict if a transaction if fraudulent or not. Such use cases are often quite challenging due to imbalanced data and require <A href="https://blogs.sap.com/2022/08/22/data-yoga-it-is-all-about-finding-the-right-balance/" target="_blank" rel="noopener noreferrer">different techniques</A> before implementing a machine learning model.<BR /> <BR /> What will you learn in this Hands-On tutorial?<BR /> <OL><BR /> <LI>Access data from your local Python environment directly in SAP HANA Cloud.</LI><BR /> <LI>Leverage the native Auto Machine Learning capability in SAP HANA Cloud.</LI><BR /> </OL><BR /> What are the requirements?<BR /> <OL><BR /> <LI>Please have your favorite Python editor ready. I used a Jupyter Notebook with Python Version 3.6.12.</LI><BR /> <LI>The HANA Cloud must have at least 3 CPUs and the script server must be enabled.</LI><BR /> <LI>Download the Python script and the data from the following <A href="https://github.com/SAP-samples/hana-ml-samples/tree/main/Python-API/usecase-examples/fraud-detection" target="_blank" rel="nofollow noopener noreferrer">GitHub repository</A>.</LI><BR /> </OL><BR /> Let’s jump right in. In your Python editor install and import the following library:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/1-78.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/2-46.png" /></P><BR /> The <A href="https://pypi.org/project/hana-ml/" target="_blank" rel="nofollow noopener noreferrer">hana_ml library</A> enables you to directly connect to your HANA. To leverage its full potential you have to make sure that your user has the following policies assigned:<BR /> <OL><BR /> <LI>AFL__SYS_AFL_AFLPAL_EXECUTE</LI><BR /> <LI>AFL__SYS_AFL_APL_AREA_EXECUTE</LI><BR /> <LI>WORKLOAD_ADMIN</LI><BR /> </OL><BR /> Set your HANA host, port, user, password and encrypt to true:<BR /> <BR /> <STRONG><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/3-40.png" /></STRONG><BR /> <BR /> Execute the following command to connect to your HANA:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/4-32.png" /></P><BR /> You can hide your login credentials through the <A href="https://help.sap.com/docs/SAP_HANA_PLATFORM/b3ee5778bc2e4a089d3299b82ec762a7/dd95ac9dbb571014a7d7f0234d762fdb.html?version=2.0.05" target="_blank" rel="noopener noreferrer">Secure User Store</A> from the HANA client and don’t have them visible in clear text. In our command prompt execute the following script:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/5-24.png" /></P><BR /> Then back in your Python editor you can use the HANA key to connect:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/6-21.png" /></P><BR /> Now, upload a local dataset and push it directly into HANA. Make sure you change the path to your local directory.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/7-26.png" /></P><BR /> Before you bring your local dataset into HANA, please execute some transformations. Change the columns to upper string and add a unique Transaction ID to the data. This ID will later be used as a key in our machine learning algorithms, which are directly running in HANA.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/8-23.png" /></P><BR /> Next, create a HANA dataframe and point it to the table with the uploaded data.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/9-37.png" /></P><BR /> If your data already exists in HANA, you can create a <A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.06/en-US/hana_ml.dataframe.html" target="_blank" rel="noopener noreferrer">HANA data frame</A> through the sql or table function i.e.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/10-15.png" /></P><BR /> Next, control your data and convert the following variables accordingly.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/11-16.png" /></P><BR /> Control the conversion and take a look at a short description of the data. Note the target variable is called Fraud. In addition, there are eight predictors capturing different information of a transaction.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/12-15.png" /></P><BR /> Next, split the data into a training and testing set.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/13-14.png" /></P><BR /> Please control the size of the training and testing datasets.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/14-13.png" /></P><BR /> Import the following dependencies for the AutomaticClassification.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/15-12.png" /></P><BR /> Further, you can manage the workload in HANA by creating <A href="https://help.sap.com/docs/SAP_HANA_PLATFORM/6b94445c94ae495c83a19646e7c3fd56/5066181717df4110931271d1efd84cbc.html" target="_blank" rel="noopener noreferrer">workload classes</A>. Please execute the following SQL script to set the workload class, which will be used in the <A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.06/en-US/hana_ml.algorithms.pal_algorithm.html#module-hana_ml.algorithms.pal.auto_ml" target="_blank" rel="noopener noreferrer">AutomaticClassification</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/16-10.png" /></P><BR /> The AutoML approach automatically executes data processing, model fitting, -comparison and -optimization. First, create an AutoML classifier object “auto_c” in the following cell. It is helpful to review and set respective <A href="https://help.sap.com/docs/HANA_CLOUD_DATABASE/319d36de4fd64ac3afbf91b1fb3ce8de/d1a54bc3a4664937b77e85a865754b17.html?locale=en-US" target="_blank" rel="noopener noreferrer">AutoML configuration parameters</A>.<BR /> <UL><BR /> <LI>The defined scenario will run two iterations of pipeline optimization. The total number of pipelines which will be evaluated is equal to population_size + generations × offspring_size. Hence, in this case this amounts to 15 pipelines.</LI><BR /> <LI>With elite_number, you specify how many of the best pipelines you want to compare.</LI><BR /> <LI>Setting random_seed =1234 helps to get reproducable AutoML runs</LI><BR /> </UL><BR /> In addition, you could set the maximum runtime for individual pipeline evaluations with the parameter max_eval_time_mins or determine if the AutoML shall stop if there are no improvement for the set number of generations with the early_stop parameter. Further, you can set specific performance measures for the optimization with the scoring parameter.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/17-10.png" /></P><BR /> A default set of AutoML classification operators and parameters is provided as the global config-dict, which can be adjusted to the needs of the targeted AutoML scenario. You can use methods like update_config_dict, delete_config_dict, display_config_dic to update the scenario definition. Therefore, let’s reinitialize the Auto ML operators and their parameters.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/18-5.png" /></P><BR /> You can see all the available settings when you display the configuration file.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/19-5.png" /></P><BR /> Let’s adjust some of the settings to narrow the searching space. As the resampling method choose the SMOTETomek method, since the data is imbalanced.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/20-4.png" /></P><BR /> Exclude the Transformer methods.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/21-3.png" /></P><BR /> As machine learning algorithms keep the Hybrid Gradient Boosting Tree and Multi Logistic Regression.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/22-4.png" /></P><BR /> Let’s set some parameters for the optimization of the algorithms.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/23-4.png" /></P><BR /> Review the complete Auto ML configuration for the classification.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/24-3.png" /></P><BR /> Next, fit the Auto ML scenario on the training data. It may take a couple of minutes. If it takes to long exclude the SMOTETomek in the resampler method of the config file.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/25-3.png" /></P><BR /> You can monitor the pipeline progress through the execution logs.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/26-2.png" /></P><BR /> Now, evaluate the best model on the testing data.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/27-2.png" /></P><BR /> Then, you can create predictions with your machine learning model.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/28-2.png" /></P><BR /> Of course, you can also save the best model in HANA. Therefore, create a <A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.06/en-US/hana_ml.model_storage.html" target="_blank" rel="noopener noreferrer">Model Storage</A>.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/29-2.png" /></P><BR /> Save the model through the following command.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/11/30-1.png" /></P><BR /> I hope this blog post helped you to get started with your own SAP Machine Learning use cases and I encourage you to try it yourself. If you want to try out more notebooks, have a look at the following <A href="https://github.com/SAP-samples/hana-ml-samples/tree/main/Python-API/pal/notebooks" target="_blank" rel="nofollow noopener noreferrer">Github Repository</A>.<BR /> <BR /> I want to thank <SPAN class="mention-scrubbed">andreas.forster</SPAN>, <SPAN class="mention-scrubbed">christoph.morgen</SPAN> and <SPAN class="mention-scrubbed">raymond.yao</SPAN> for their support while writing this Hands-On tutorial.<BR /> <BR /> Cheers!<BR /> <BR /> Yannick Schaper 2022-11-23T07:21:12+01:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-business-technology-platform-as-part-of-a-platform-supporting-a-data/ba-p/13549813 SAP Business Technology Platform as part of a platform supporting a Data Mesh 2022-12-15T19:40:49+01:00 andreas_engel https://community.sap.com/t5/user/viewprofilepage/user-id/301006 <H1 id="toc-hId-832255427"><STRONG>Why to read this blog</STRONG></H1><BR /> In his <A href="https://blogs.sap.com/2022/06/04/more-than-just-a-hype-data-mesh-as-a-new-approach-to-increase-agility-in-value-creation-from-data/" target="_blank" rel="noopener noreferrer">blog series</A> on Data Mesh Wolfgang Epting gives a comprehensive and detailed introduction to Data Mesh and which components in the SAP Business Technology Platform (SAP BTP)&nbsp; can be leveraged as foundation to implement Data Mesh in an organization.<BR /> <BR /> In this blog I wanted to add an additional angle to the discussion. While the phrase “The winner takes is all” might be true in many areas of life, this mustn’t be the case in the context of a Data Mesh project. The question which technology to leverage to implement a Data Mesh is not an either-or question. SAP BTP is well suited to be leveraged as part of a ‘bigger’ platform supporting a Data Mesh implementation.<BR /> <BR /> Concerning wording:<BR /> <BR /> I use term BTP based data products for data products hosted on SAP Business Technology Platform (as described in Wolfgang’s <A href="https://blogs.sap.com/2022/06/04/more-than-just-a-hype-data-mesh-as-a-new-approach-to-increase-agility-in-value-creation-from-data/" target="_blank" rel="noopener noreferrer">blog series</A>).<BR /> <H1 id="toc-hId-635741922"><STRONG>Data Mesh leveraging SAP and Non-SAP Technology</STRONG></H1><BR /> Looking at your data from a (SAP-biased) bird’s view there are domains mainly residing in SAP Systems and others in non-SAP Systems. When starting your Data Mesh project with data products in the non-SAP area, non-SAP technology could be the best choice to build your initial data products. Your Data Mesh initiative is initially based on non-SAP technology.<BR /> <BR /> As soon as you start to include data products and domains residing in SAP systems (S/4HANA or ECC or ERP, and SAP Data Warehouses), you should consider leveraging SAP-Technology. Here is why:<BR /> <UL><BR /> <LI>Not only do SAP systems contain high value data, but they also contain domains and domain knowledge. I.e, SAP S/4HANA contains business and entity data models for customer data in a company.</LI><BR /> <LI>Out-of-the box data products are delivered as content packages (in SAP Analytic Cloud and SAP Datawarehouse Cloud see Wolfgang’s <A href="https://blogs.sap.com/2022/06/04/more-than-just-a-hype-data-mesh-as-a-new-approach-to-increase-agility-in-value-creation-from-data/" target="_blank" rel="noopener noreferrer">blog series</A>), which can be tailored to your needs.</LI><BR /> <LI>SAP BTP offers supreme out-of-the-box integrations to SAP systems, enabling easy re-use of the semantic models and domain data models as well as virtual real-time access to the actual data.</LI><BR /> </UL><BR /> Your Data Mesh will be built on SAP and non-SAP technology. The combination of both technologies will serve your needs best.<BR /> <BR /> [Remark: As explained in Wolfgang’s <A href="https://blogs.sap.com/2022/06/04/more-than-just-a-hype-data-mesh-as-a-new-approach-to-increase-agility-in-value-creation-from-data/" target="_blank" rel="noopener noreferrer">blog series</A>, SAP BTP can be leveraged for non-SAP data as well, especially to build data products containing SAP and&nbsp; non-SAP-Data. If most of your data products rely on data in SAP Systems, leveraging only SAP BTP for your Data Mesh initiative is an option, you should consider.]<BR /> <BR /> Here is how SAP BTP fits into a Data Mesh platform combining SAP BTP and non-SAP technology. Let me go through the 4 pillars of Data Mesh to explain how the pieces fit together.<BR /> <BR /> &nbsp;<BR /> <H2 id="toc-hId-568311136"><STRONG>Domain-oriented decentralized data ownership and architecture</STRONG></H2><BR /> Domain Ownership is a key principle for a Data Mesh. To view SAP S/4HANA or ECC or ERP and SAP Data Warehouse systems only as data provider is too short sighted. These systems contain domains and domain knowledge. The users of these systems are domain experts, both on the IT as well as on the business side. SAP systems serve as trusted source of information on customers, products, equipment and many more domains.<BR /> <BR /> Therefore, all the domain knowledge within your SAP eco system (IT and LOB) in your company can be leveraged by including SAP experts in your domain teams. Technically the well-established SAP data and semantic models can - and should be - reused for building data products.<BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/12/DomainandDaaP.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Figure 1: SAP Business Technology Platform as part of a 'bigger' Data Mesh: Domain Ownership and Data as a Product</P><BR /> <BR /> <H2 id="toc-hId-371797631"><STRONG>Data as a Product</STRONG></H2><BR /> SAP S/4HANA or ECC or ERP and SAP Business Warehouse systems are a great source to build source-oriented data products. Data products for data in SAP Systems can be best build (see above) based on the SAP BTP.<BR /> <BR /> SAP Data Catalog entries can be published/integrated via APIs to/with an Enterprise Data Catalog leveraged in a Data Mesh. &nbsp;BTP based data products can be easily consumed by standard APIs and within a Data Mesh.<BR /> <H2 id="toc-hId-175284126"><STRONG>Self-serve data infrastructure as a platform</STRONG></H2><BR /> Provisioning of underlying the platform based on a self-serve data infrastructure is another key pillar for a Data Mesh initiative. The SAP Business Technology Platform does not offer Infrastructure as a Service, but all services can be provisioned either via automation based on scripts or in a self-serve manner. The infrastructure and resources needed for the services are provisioned alongside with the service.<BR /> <BR /> Scripts for provisioning the SAP BTP services can be included in an overarching approach for providing a Self-Services Data Infrastructure. I.e., domain teams can leverage the BTP Cockpit for instantiating the SAP BTP service needed to build and deliver data products.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/12/InfrastructureandFederatedGov.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Figure 2: SAP Business Technology Platform as part of a 'bigger' Data Mesh: Infrastructure and Federated Governance</P><BR /> &nbsp;<BR /> <H2 id="toc-hId--21229379"><STRONG>Federated computational governance</STRONG></H2><BR /> To enable the interoperability of self-sufficient data products, there is a need for federated computational governance. Rules defined for the Data Mesh can be federated to the BTP based data products. Computational execution of the federated rules is supported by SAP BTP services.<BR /> <H1 id="toc-hId--346825603"><STRONG>Conclusion</STRONG></H1><BR /> SAP BTP fits well as part of a platform supporting a Data Mesh. As always detailed questions must be clarified based on your specific requirements. The integration options are available.<BR /> <H1 id="toc-hId--543339108"><STRONG>Next steps</STRONG></H1><BR /> When not already done so, you can start with Wolfgang’s <A href="https://blogs.sap.com/2022/06/04/more-than-just-a-hype-data-mesh-as-a-new-approach-to-increase-agility-in-value-creation-from-data/" target="_blank" rel="noopener noreferrer">blog series</A> on Data Mesh to understand SAP’s technology which can be leveraged as basis for your Data Mesh initiative.<BR /> <BR /> Especially, when data products based on data from SAP Systems are on the roadmap, you should consider SAP Business Technology Platform build and operationalize these data products.<BR /> <BR /> I am very interested in your comments, please leave these below.<BR /> <BR /> <STRONG>If you have any further questions</STRONG>&nbsp;about SAP Business Technology Platform or specific elements of our platform, leave a question in&nbsp;<A href="https://answers.sap.com/questions/ask.html?primaryTagId=8077228b-f0b1-4176-ad1b-61a78d61a847" target="_blank" rel="noopener noreferrer">SAP Community Q&amp;A</A>&nbsp;or visit our&nbsp;<A href="https://community.sap.com/topics/business-technology-platform" target="_blank">SAP Community topic page</A>.<BR /> <BR /> Further information:<BR /> <UL><BR /> <LI><BR /> <UL><BR /> <LI>Blogs:<BR /> <UL><BR /> <LI><A href="https://blogs.sap.com/2022/06/04/more-than-just-a-hype-data-mesh-as-a-new-approach-to-increase-agility-in-value-creation-from-data/" target="_blank" rel="noopener noreferrer">More than just a hype: Data Mesh as a new approach to increase agility in value creation from data</A></LI><BR /> <LI><A href="https://blogs.sap.com/2022/09/27/data-mesh-with-sap-business-technology-platform-part-1-sap-data-warehouse-cloud/" target="_blank" rel="noopener noreferrer">Data Mesh with SAP Business Technology Platform Part 1 – SAP Data Warehouse Cloud</A></LI><BR /> <LI><A href="https://blogs.sap.com/2022/11/09/data-mesh-with-sap-business-technology-platform-part-2-sap-hana-cloud/" target="_blank" rel="noopener noreferrer">Data Mesh with SAP Business Technology Platform Part 2 – SAP HANA Cloud</A></LI><BR /> <LI><A href="https://blogs.sap.com/2022/12/09/data-mesh-with-sap-business-technology-platform-part-3-sap-master-data-governance/" target="_blank" rel="noopener noreferrer">Data Mesh with SAP Business Technology Platform Part 3 – SAP Master Data Governance</A></LI><BR /> <LI><A href="https://blogs.sap.com/2022/12/20/data-mesh-with-sap-business-technology-platform-part-4-sap-data-intelligence-cloud/" target="_blank" rel="noopener noreferrer">Data Mesh with SAP Business Technology Platform Part 4 – SAP Data Intelligence Cloud</A></LI><BR /> <LI><A href="https://blogs.sap.com/2023/01/23/data-mesh-with-sap-business-technology-platform-part-5-sap-analytics-cloud/" target="_blank" rel="noopener noreferrer">Data Mesh with SAP Business Technology Platform Part 5 – SAP Analytics Cloud</A></LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <UL><BR /> <LI><BR /> <UL><BR /> <LI><BR /> <UL><BR /> <LI><A href="https://blogs.sap.com/2023/03/29/data-mesh-with-sap-datasphere/" target="_blank" rel="noopener noreferrer">Data Mesh with SAP Business Technology Platform Part 6 – SAP Datasphere</A></LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <UL><BR /> <LI><BR /> <UL><BR /> <LI>SAP &amp; PwC Study:<BR /> <UL><BR /> <LI><A href="https://pages.pwc.de/data-mesh-und-sap" target="_blank" rel="noopener nofollow noreferrer">Data Mesh and SAP – How and why you should mesh your data using the SAP Business Technology Platform</A></LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <UL><BR /> <LI><BR /> <UL><BR /> <LI>Data Mesh Architecture by INNOQ:<BR /> <UL><BR /> <LI><A href="https://www.datamesh-architecture.com/tech-stacks/sap" target="_blank" rel="noopener nofollow noreferrer">Data Mesh Architecture by INNOQ – SAP Tech Stack for Data Mesh</A></LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> </LI><BR /> </UL> 2022-12-15T19:40:49+01:00 https://community.sap.com/t5/technology-blogs-by-sap/the-49ers-turn-to-real-time-data-to-deliver-superior-home-game-experiences/ba-p/13571508 The 49ers Turn to Real-time Data to Deliver Superior Home Game Experiences for 70k+ Fans 2023-01-18T11:05:41+01:00 timoelliott https://community.sap.com/t5/user/viewprofilepage/user-id/1235 <EM>The Executive Huddle enables critical calls on game day to improve the stadium experience</EM><BR /> <BR /> Twenty-first-century sports, from neighborhood little leagues to iconic franchises, are driven by data. Another side to the sports universe that is being radically reinvited with data is the game day fan experience.<BR /> <BR /> What to do about an endless line, a clogged sink, and soggy French fries? Typically, sports fans are out of luck. Best case scenario: usually, they are left to fill out a post-game day customer experience survey and hope for better luck next time.<BR /> <BR /> For the legendary <A href="https://www.49ers.com" target="_blank" rel="nofollow noopener noreferrer">San Francisco 49ers</A> hoping for better luck next time wasn't good enough for their 70,000+ loyal fans that arrive at their stadium for ten home games a season. The 49ers wanted to translate the data gathered throughout Levi's Stadium into meaningful, measurable, real-time improvements to the fan experience.<BR /> <H3 id="toc-hId-1092950191"><STRONG>An Epic View From the</STRONG> 50-Yard<STRONG> Line</STRONG></H3><BR /> Not willing to wait days for customer feedback and then weeks to implement changes, the 49ers were looking for a real-time solution that would collect customer data from all over the stadium—from the parking lot to concession stands to retail shops and restrooms—and leverage it for immediate, actionable insights. Enter <A href="https://www.sap.com/products/business-technology-platform.html" target="_blank" rel="noopener noreferrer">SAP Business Technology Platform</A>, including SAP Analytics Cloud and SAP HANA Cloud, reimagined for the 49ers as the Executive Huddle.<BR /> <BR /> Now the 49ers' Business Intelligence team suits up for home games, which they survey from their ultramodern skybox control room, perched high above the 50-yard Line. While guests enjoy the game in the front of the suite, the BI team is focused on the Executive Huddle in the back, where dashboards provide visualized, real-time data and analytics from concessions, retail, entry gates, and parking, along with fan feedback from 100 HappyOrNot terminals. Long line at the concession stand 115? The customer service team sends in reinforcements to open another register. Clogged sink in the men's restroom in section 110? A maintenance crew is on the way.<BR /> <BR /> With the Executive Huddle, customer data is deployed on game day to maximum effect, ensuring a seamless experience for the 49ers' legions of fans, and the difference is measurable.<BR /> <BR /> The San Francisco 49ers' implementation of Executive Huddle has resulted in the following:<BR /> <UL><BR /> <LI>Fan satisfaction increases by up to 30 index points</LI><BR /> <LI>Optimization of the fan experience from parking lots to security gates</LI><BR /> <LI>New opportunity areas in retail and concessions</LI><BR /> <LI>Improved customer service leading to maximized revenues</LI><BR /> <LI>Identification and resolution of game day issues before they become widespread or public</LI><BR /> <LI>Centralized fan feedback for rapid issue triage and resolution</LI><BR /> <LI>Rapid notification of VIP arrivals via ticket scans</LI><BR /> <LI>Retail sales data to identify what's selling and what's not</LI><BR /> <LI>Ability to compare data in real-time across multiple sources</LI><BR /> <LI>Enhanced staff productivity, from executives to janitors, by pinpointing where problems arise</LI><BR /> </UL><BR /> Tune In<BR /> <BR /> In this episode of Better Together: Customer Conversations, we sit down with <A href="https://www.linkedin.com/in/noele-crooks-41510028/" target="_blank" rel="nofollow noopener noreferrer">Noele Crooks</A>, Director, Business Intelligence &amp; CRM, San Francisco 49ers, to explore why the <A href="https://www.49ers.com" target="_blank" rel="nofollow noopener noreferrer">49ers</A> leverage SAP BTP technologies to optimize their fans' game day experience.<BR /> <UL><BR /> <LI><STRONG>Thought Leadership Podcast</STRONG>: <A href="https://www.linkedin.com/in/tamaramccleary/" target="_blank" rel="nofollow noopener noreferrer">Tamara McCleary</A>, CEO of Thulium, talks with Noele Crooks about why the 49ers are using technology to make a real-time difference for fans.</LI><BR /> <LI><STRONG>Practitioners' Video:</STRONG> <A href="https://www.linkedin.com/in/daniel-lahl-4a077a3/" target="_blank" rel="nofollow noopener noreferrer">Dan Lahl</A>, Global Vice President of SAP Marketing and Solutions, sits down with Noele to explore the technology behind the Executive Huddle and consider other applications for this powerful tool—both for the 49ers and for other organizations.</LI><BR /> </UL><BR /> Interested in more stories about using data insights to improve customer experiences? Check out:<BR /> <UL><BR /> <LI><A href="https://www.sap.com/assetdetail/2019/06/4e2ef2df-517d-0010-87a3-c30de2ffd8ff.html" target="_blank" rel="noopener noreferrer">AG Real Estate</A> - Revitalizing the shopping center experience with augmented analytics</LI><BR /> <LI><A href="https://blogs.sap.com/2023/01/04/kaust-transforms-campus-to-smart-city-with-sap-business-technology-platform/" target="_blank" rel="noopener noreferrer">King Abdullah University of Science and Technology</A> (KAUST) - improving the user experience of living on the campus for residents and guests, starting with all things related to dining on the campus</LI><BR /> </UL><BR /> Visit <A href="https://www.sap.com/programs/btp-better-together-customer-series.html" target="_blank" rel="noopener noreferrer">sap.com/btp</A> to find all our Better Together: Customer Conversations episodes.<BR /> <BR /> I'm always interested in hearing your input; let me know which topics you would like us to discuss further. Please <A href="mailto:michelle.hickey@sap.com" target="_blank" rel="nofollow noopener noreferrer">contact us </A>if you would like to be a guest on a future episode. 2023-01-18T11:05:41+01:00 https://community.sap.com/t5/technology-blogs-by-sap/san-francisco-49ers-optimize-fan-experience-using-the-executive-huddle/ba-p/13571510 San Francisco 49ers Optimize Fan Experience Using the Executive Huddle 2023-01-18T11:08:47+01:00 timoelliott https://community.sap.com/t5/user/viewprofilepage/user-id/1235 <EM>Tackling customer concerns in real-time to elevate game-day fan satisfaction</EM><BR /> <BR /> At home in Levi's Stadium, where over 70K fans gather on game day in the heart of Silicon Valley, innovation is a natural fit for the <A href="https://www.49ers.com" target="_blank" rel="nofollow noopener noreferrer">San </A>Francisco 49ers. However, the 49ers' Business Intelligence and CRM teams wanted to go the extra mile to ensure a superior experience for their loyal fans. The 49ers looked to SAP to help translate the game-day customer data into real-time, actionable insights.<BR /> <BR /> This episode of the Better Together series features the San Francisco 49ers, who leveraged the Executive Huddle—an advanced platform enabled by the <A href="https://www.sap.com/products/business-technology-platform.html" target="_blank" rel="noopener noreferrer">SAP Business Technology Platform</A>—to transform how the 49ers approach the fan experience at Levi's Stadium.<BR /> <BR /> We spoke to <A href="https://www.linkedin.com/in/noele-crooks-41510028/" target="_blank" rel="nofollow noopener noreferrer">Noele Crooks</A>, Director, Business Intelligence &amp; CRM, San Francisco 49ers.<BR /> <UL><BR /> <LI><STRONG>Thought Leadership</STRONG> <STRONG>Podcast</STRONG>: Noele Crooks sits with <A href="https://www.linkedin.com/in/tamaramccleary/" target="_blank" rel="nofollow noopener noreferrer">Tamara McCleary</A>, CEO of Thulium, to talk about why it was necessary to optimize the fan experience and how the 49ers are now leveraging the platform to meet their sustainability goals.</LI><BR /> <LI><STRONG>Practitioners' Video:</STRONG> <A href="https://www.linkedin.com/in/daniel-lahl-4a077a3/" target="_blank" rel="nofollow noopener noreferrer">Dan Lahl</A>, Global Vice President of SAP Marketing and Solutions, sits down with Noele to explore the technology behind the Executive Huddle and consider other applications for this powerful tool.</LI><BR /> </UL><BR /> Here are some key insights from these conversations:<BR /> <BR /> <STRONG>Set Clear Goals</STRONG><BR /> <BR /> Digital transformation can be overwhelming, especially when organizations try to overhaul every aspect of operations in one fell swoop. The San Francisco 49ers found success by focusing first on one clearly defined goal. "We knew we wanted to improve the fan experience," Noele Crooks told us, "That helped us start ideating." The results speak for themselves. "Since we've launched the Huddle," Crooks explained, "our fan satisfaction has gone up 30 index points… we're solving issues in real-time, and our fans are happier."<BR /> <BR /> <STRONG>Put Data to Work with Real-Time Visualizations</STRONG><BR /> <BR /> The 49ers' Business Intelligence team had plenty of game day data to work with—from parking lots to concession stands to HappyOrNot fan feedback stations. But with only ten home games a year, the team needed to use that data in real time. "Just imagine looking through a spreadsheet or a data dump," Noele said. "It's impossible to decide quickly or even understand what you're looking at."<BR /> <BR /> That's where SAP BTP comes in. The solution has ten different data integrations feeding into SAP HANA Cloud. SAP Analytics Cloud enables the visualization of that data in the Executive Huddle dashboards, which update every one to five minutes on game day, allowing Crooks and her team to respond in real time. For instance, the ticket scanning API integration will quickly notify them of VIP arrivals and ensures these special guests receive additional personalized services throughout their game day experience."It's great to have all the data," Crooks told us, "but being able to visualize it in real-time is what the true impact and innovation are."<BR /> <BR /> <STRONG>Keep Innovating</STRONG><BR /> <BR /> Now that Noele Crooks and her team have accomplished their original goal of optimizing fan experience on game day, they are looking for new digital frontiers to explore. In the near term, the 49ers are tackling sustainability—using the dashboards to monitor water and gas consumption in real-time—and social media—thinking about how fans' social media posts can become another data point to help improve the fan experience.<BR /> <BR /> "You can always do more once you have all your use cases," Crooks said. And that ongoing process of innovation, Crooks reminds us, is "the fun part."<BR /> <BR /> Check out these other stories involving data insights for improved experiences:<BR /> <UL><BR /> <LI><A href="https://www.sap.com/assetdetail/2019/06/4e2ef2df-517d-0010-87a3-c30de2ffd8ff.html" target="_blank" rel="noopener noreferrer">AG Real Estate</A> - Revitalizing the shopping center experience with augmented analytics</LI><BR /> <LI><A href="https://blogs.sap.com/2023/01/04/kaust-transforms-campus-to-smart-city-with-sap-business-technology-platform/" target="_blank" rel="noopener noreferrer">King Abdullah University of Science and Technology</A> (KAUST) - improving the user experience of living on the campus for residents and guests, starting with all things related to dining on the campus</LI><BR /> </UL><BR /> Visit <A href="https://www.sap.com/programs/btp-better-together-customer-series.html" target="_blank" rel="noopener noreferrer">sap.com/BTP</A> to find the whole Better Together: Customer Conversations series and sign up to receive upcoming episodes and a year-end series recap delivered to your e-mail.<BR /> <BR /> Let us know if there are topics you'd like to learn more about or any questions you would like us to explore. Please <A href="mailto:michelle.hickey@sap.com" target="_blank" rel="nofollow noopener noreferrer">contact us</A>&nbsp;if you would like to be a guest on a future episode.<BR /> <BR /> &nbsp; 2023-01-18T11:08:47+01:00 https://community.sap.com/t5/technology-blogs-by-sap/top-3-reasons-to-attend-sap-data-unleashed/ba-p/13564569 Top 3 Reasons to Attend SAP Data Unleashed 2023-02-07T22:43:10+01:00 SavannahVoll https://community.sap.com/t5/user/viewprofilepage/user-id/13466 <P style="overflow: hidden;margin-bottom: 0px"><A href="https://webinars.sap.com/sapdataunleashed/en/home?campaigncode=CRM-PM23-DAN-1961688&amp;source=blogs-glo-top-reasons" target="_blank" rel="noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/02/SAPDU_Banners_1920x580_1.18-1.png" /></A></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><A href="https://webinars.sap.com/sapdataunleashed/en/home?campaigncode=CRM-PM23-DAN-1961688&amp;source=blogs-glo-top-reasons" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">SAP Data Unleashed</SPAN></A><SPAN data-contrast="auto"> is just around the corner, officially kicking off on March 8, 2023, at 8:00am PST. This free, one-hour, virtual data summit includes significant announcements, product demos, and a two-hour live Q&amp;A. A</SPAN><SPAN data-contrast="none">ttendees will be the first to learn about the latest SAP advancements in data and analytics, hearing directly from some of the world’s best-run companies and technology providers. </SPAN><SPAN data-contrast="auto">The event features speakers from SAP’s executive leadership team, including:&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN></P><BR /> <BR /> <UL><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><SPAN data-contrast="auto">Julia White, Chief Marketing and Solutions Officer and Member of the Executive Board, SAP</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN></LI><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><SPAN data-contrast="auto">Juergen Mueller, Chief Technology Officer and Member of the Executive Board, SAP</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN></LI><BR /> </UL><BR /> <SPAN data-contrast="none">Will you join us?&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="none">Here are the top 3 reasons to attend </SPAN><A href="https://webinars.sap.com/sapdataunleashed/en/home?campaigncode=CRM-PM23-DAN-1961688&amp;source=blogs-glo-top-reasons" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">SAP Data Unleashed</SPAN></A><SPAN data-contrast="none">.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H2 id="toc-hId-963033511"><B><SPAN data-contrast="auto">1. Understand SAP’s vision for data and analytics&nbsp;</SPAN></B></H2><BR /> <SPAN data-contrast="none">Economic and supply chain challenges continue to test the endurance of businesses today, driving leadership to look for new ways to use data to understand their customers, develop better products, and streamline operations. But in the end, it isn’t about gathering the most data, it’s about using your data to its full advantage.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="none">Many organizations have lost the valuable context within their data by moving it to serve a new technology versus focusing on where the value is – within the data itself. </SPAN><SPAN data-contrast="auto">In this event, we’ll share our vision to simplify your data landscape and harmonize mission critical data across the enterprise.&nbsp;</SPAN><BR /> <H2 id="toc-hId-766520006"><STRONG>2. Discover an open and interoperable SAP</STRONG></H2><BR /> <SPAN data-contrast="auto">We understand the drive to innovate. We also understand why so many innovative ideas fail. As data projects become increasingly interdisciplinary, organizations must be able to connect cross-functional data siloed in individual applications.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">It’s time to leave disconnected systems in the past and embrace an open and interoperable architecture. Organizations of all sizes and industries are using SAP solutions to </SPAN><SPAN data-contrast="none">simplify their data landscapes and </SPAN><SPAN data-contrast="auto">maximize the value of their data.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">Register for the event to gain inspiration from your peers and spark new ideas for your own team. Find out how you can connect hybrid multi-cloud environments and leverage your data’s full potential.&nbsp;&nbsp;</SPAN><BR /> <H2 id="toc-hId-570006501"><STRONG>3. Be the first to hear SAP's data announcements</STRONG></H2><BR /> <SPAN data-contrast="auto">At </SPAN><A href="https://webinars.sap.com/sapdataunleashed/en/home?campaigncode=CRM-PM23-DAN-1961688&amp;source=blogs-glo-top-reasons" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">SAP Data Unleashed</SPAN></A><SPAN data-contrast="auto">, executives from both SAP and leading data vendors will take the virtual stage to announce our newest innovation and partnerships that will unleash the power of business data and transform decision making.&nbsp;This innovation and collaboration will make it easier for businesses to access context-rich data to shape their strategies for the future.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">By attending this event, you’ll be among the first to learn about the new capabilities of </SPAN><A href="https://www.sap.com/products/technology-platform/analytics.html" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">SAP’s data and analytics solutions</SPAN></A><SPAN data-contrast="auto"> and understand how they can help you achieve your 2023 business goals.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H2 id="toc-hId-373492996"><B><SPAN data-contrast="auto">Register for SAP Data Unleashed</SPAN></B><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN></H2><BR /> <SPAN data-contrast="auto">Join us on March 8</SPAN><SPAN data-contrast="auto">th</SPAN><SPAN data-contrast="auto"> for this exclusive, virtual, one-hour summit. You won’t want to miss this opportunity to hear about the latest SAP advancements, see new capabilities in action, and understand the value customers gain when they unleash the power of their business data.</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">Don’t delay, <A href="https://webinars.sap.com/sapdataunleashed/en/home?campaigncode=CRM-PM23-DAN-1961688&amp;source=blogs-glo-top-reasons" target="_blank" rel="noopener noreferrer">register for SAP Data Unleashed</A>.</SPAN><BR /> <BR /> &nbsp; 2023-02-07T22:43:10+01:00 https://community.sap.com/t5/technology-blogs-by-members/personal-perspective-why-technology-leaders-need-a-data-modernization/ba-p/13557431 Personal perspective: Why technology leaders need a Data Modernization strategy, and how to not miss 2023-02-24T20:03:56+01:00 MilesHanley https://community.sap.com/t5/user/viewprofilepage/user-id/124899 <SPAN style="font-weight: 400">If you are a technology leader, you know Data Modernization is top of mind in the C-suite. Having been fortunate to support some of the world's largest enterprises as an expert in Cloud technologies I have found this is because data-driven organizations make smarter decisions faster.</SPAN><BR /> <BR /> <SPAN style="font-weight: 400">Data Modernization is the process of updating data management practices and technologies. This is a significant organizational maturation process that may include moving to the Cloud, using more efficient databases, and adopting new analytics tools. Executives that I’ve spoken with are concerned with data modernization because it underpins essential capabilities to remain competitive and meet the ever changing demands of the digital age:</SPAN><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Insightful decision-making: Accurate, meaningful and timely data precedes decisions to mitigate risks, identify new opportunities and find efficiencies</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Improve operational efficiency: Through automation and AI/ML,&nbsp; reducing redundant processes that were previously not possible as a result of inflexible legacy systems, save time and money</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Increase business flexibility: Adopt new business models and innovation with open and scalable technologies to better serve customers in a rapidly evolving digital landscape</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Enhance customer experiences: Connected understanding of customers, their needs and preferences provide better customer experiences, personalize services, and improve customer retention</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Harden security: Modern data technologies with built-in security features and regulation compliance along with updated data governance policies better protect sensitive data which is important to avoid embarrassing breaches and regulatory fines</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Increase scalability: Scale operations quickly with the tools and resources required to meet the needs of the business</SPAN></LI><BR /> </UL><BR /> <SPAN style="font-weight: 400">The reality in many boardrooms is that it’s not “if” data modernization, but how to hit the mark on this investment. Exploring the challenges, steps, and best practices when adopting and executing an Enterprise Data Modernization strategy organizations are better positioned to execute.</SPAN><BR /> <BR /> <SPAN style="font-weight: 400">Virtually all organizations today have data collection capabilities that far outpace their means to connect, interpret and act on data. Swaths of data are readily available if not for non cross compatible tools and technologies. Thus it is imperative to become a data driven business and that long term IT investments and architecture are built on open, secure and scalable technologies. </SPAN><SPAN style="font-weight: 400">So how does this translate into meaningful action for technology leaders?&nbsp;</SPAN><BR /> <BR /> <SPAN style="font-weight: 400">Assess the current state and set the vision</SPAN><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">A detailed mapping of existing data infrastructure, applications, and processes highlights gaps and inefficiencies. The stated vision is less concerned with how these are to be addressed, but rather establishes the why and the overarching business objectives, data needs, and technology requirements that will support the organization's future state</SPAN></LI><BR /> </UL><BR /> <SPAN style="font-weight: 400">Rely on deep technical expertise to develop a roadmap</SPAN><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">From the current state assessment, organizations are better equipped to curate a roadmap outlining the steps needed to fulfill the vision. The big blocks on the roadmap include implementing new data technologies, upgrading legacy systems, and enhancing data governance practices</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Legacy systems can prove to be a major hurdle on the path to data modernization. Incompatibility of legacy systems with new technologies require significant resources to update or migrate and may take a phased approach to minimize business disruption</SPAN></LI><BR /> </UL><BR /> <SPAN style="font-weight: 400">Build for the needs of the business</SPAN><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Think big. Start small. Start with a manageable data project core to your business and do not let fear of having “perfect” data stop you. Identify the sources of data required to support the business need which may include multiple systems and sources</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Use data to make informed decisions, and not fall into the trap of paralysis by analysis. Define metrics that matter and are centric to your business. There is no need to start from zero. Accelerators and prepackaged reports are commonplace among modern data technologies</SPAN></LI><BR /> </UL><BR /> <SPAN style="font-weight: 400">Implement and upgrade data technologies with security in mind</SPAN><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Modern data technologies including cloud based data lakes, data warehouses, and data management tools should be evaluated based on their ability to support the organization's data needs, foster innovation and align with the overall stated vision</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Data governance practices ensure that data is managed effectively and securely. This may involve establishing data quality standards, implementing data security measures, and ensuring compliance with data privacy regulations</SPAN></LI><BR /> </UL><BR /> <SPAN style="font-weight: 400">Lead with conviction&nbsp;</SPAN><BR /> <UL><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">Technological change proceeds organizational cultural change. Build a data-driven culture by emphasizing data to inform decisions and training to do so. Often ask “What does the data show?” and challenge conclusions in this way. Investments in data access, analytical systems and dashboards empower employees. Increasingly over the data modernization journey accurate, meaningful and timely data will answer this question.</SPAN></LI><BR /> <LI style="font-weight: 400"><SPAN style="font-weight: 400">The C-Suite must model this. Leaders should welcome the use of data to challenge decisions and bust confirmation bias. Leadership here helps the organization adopt the data driven mindset</SPAN></LI><BR /> </UL><BR /> <SPAN style="font-weight: 400">Modernizing a data strategy is a comprehensive and structured methodology that involves defining the vision, assessing the current state, developing a roadmap, updating systems and implementing new technologies, establishing data governance, and building a data-driven culture. Iterative reflection of these steps throughout the process is required for organizations to better compete and meet the expectations of the digital age, and ensure the execution of the strategy hits the mark.</SPAN> 2023-02-24T20:03:56+01:00 https://community.sap.com/t5/technology-blogs-by-sap/unified-analytics-with-sap-datasphere-databricks-lakehouse-platform-data/ba-p/13555907 Unified Analytics with SAP Datasphere & Databricks Lakehouse Platform- Data Federation Scenarios 2023-03-10T15:56:11+01:00 Vivek-RR https://community.sap.com/t5/user/viewprofilepage/user-id/143545 <H1 id="toc-hId-833060718">Introduction</H1><BR /> With the announcements in the<A href="https://news.sap.com/2023/03/sap-datasphere-power-of-business-data/" target="_blank" rel="noopener noreferrer"> SAP Data Unleashed</A>, SAP introduced the successor of SAP Data Warehouse Cloud, <STRONG><B>SAP Datasphere</B></STRONG> – a powerful Business Technology Platform data service that addresses the Data to value strategy of every Enterprise organization to deliver seamless access to business data. &nbsp;Our Datasphere has been enriched with new features thereby delivering a unified service for data integration, cataloging, semantic modeling, data warehousing, and virtualizing workloads across SAP and non-SAP data.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic1-6.png" height="241" width="564" /></P><BR /> I am sure there will be lots of blogs that will be published soon discussing the latest offerings, roadmaps, and features. However, this blog focuses on the latest announcement related to open data partners and I am going to start by focusing on Databricks.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic2-5.png" height="224" width="524" /></P><BR /> With the rise of the Lakehouse platform that combines both Data Warehouses &amp; Data Lakes, there has been a trend with SAP customers exploring Unified Analytics Platforms or say unified environments that address different perspectives of data management, governance, development, and finally deployments of analytic workloads based on diverse data sources and formats. Previously, there is a need to replicate the data completely out of SAP environments for customers to adopt the lakehouse platform. But the current partnership with Databricks will focus to simplify and integrate the hybrid landscapes efficiently.<BR /> <BR /> There was an article posted by <A href="https://www.theregister.com/2023/03/08/sap_datasphere/" target="_blank" rel="nofollow noopener noreferrer">The Register</A> regarding the SAP Datasphere&nbsp; and it exactly resonated with the SAP messaging<BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/PressRelease.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG><B>Please note that what I am about to discuss further is the data federation scenarios between SAP Datasphere and Databricks that works as of today</B></STRONG>. <STRONG><B>There will be additional ways of integrating with Databricks in the <A href="https://news.sap.com/2023/03/sap-datasphere-business-data-fabric/" target="_blank" rel="noopener noreferrer">future</A>.</B></STRONG><BR /> <H2 id="toc-hId-765629932"><STRONG><B>Brief Introduction to the Lakehouse Platform</B></STRONG></H2><BR /> In simple terms, a lakehouse is a Data Management architecture that enables users to perform diverse workloads such as BI, SQL Analytics, Data Science &amp; Machine Learning on a unified platform. And by utilizing a combined data management platform such as lakehouse has the following benefits<BR /> <OL><BR /> <LI>Enables Direct Data Access across SAP and Non-SAP sources</LI><BR /> <LI>Simplifies data governance</LI><BR /> <LI>Removes Data Redundancy</LI><BR /> <LI>Direct Connectivity to BI Tools</LI><BR /> <LI>Simplified security with a single source of truth</LI><BR /> <LI>Support for open source &amp; commercial tooling</LI><BR /> <LI>Operating on multi-cloud environments and many more.</LI><BR /> </OL><BR /> And Databricks is one such Lakehouse platform that takes a unified approach by integrating disparate workloads to execute data engineering, Analytics, Data Science &amp; Machine Learning use cases. And as mentioned on their <A href="https://www.databricks.com/product/data-lakehouse" target="_blank" rel="nofollow noopener noreferrer">site</A>, the platform is simple, open &amp; multi-cloud. We will discuss the Lakehouse platform features and capabilities in future blogs but as mentioned before we are going to focus on a data federation scenario to access data from Databricks SQL into SAP Datasphere.<BR /> <BR /> <STRONG>Consider a scenario where the data from a non-SAP source is continuously ingested into cloud object storage say AWS S3. Note that Databricks has an <A href="https://docs.databricks.com/ingestion/auto-loader/index.html" target="_blank" rel="nofollow noopener noreferrer">autoloader</A> feature to efficiently process data files from different cloud storages as they arrive and ingest them into Lakehouse seamlessly. Then we utilize the <A href="https://docs.databricks.com/workflows/delta-live-tables/index.html" target="_blank" rel="nofollow noopener noreferrer">delta live table</A> framework for building data pipelines and storing the transformed data in&nbsp;<A href="https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.databricks.com%2Fdelta%2Findex.html&amp;data=05%7C01%7Cv.rr%40sap.com%7C2118d74bda7a4a6c5b4e08db21fbef44%7C42f7676cf455423c82f6dc2d99791af7%7C0%7C0%7C638141138200467635%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=dgoglym6W6gc8yAilgaVRZdIAWGjTjNs0d3j4mXmi0w%3D&amp;reserved=0" target="_blank" rel="nofollow noopener noreferrer">Delta format</A> on&nbsp;cloud storage, which can subsequently be accessed by Databricks SQL(DB SQL).</STRONG><BR /> <BR /> As referred to in the integration scenario below, SAP Datasphere will connect to Databricks SQL with the existing data federation capabilities and users can blend the data with SAP sources for reporting/BI workloads based on SAP Analytics Cloud(SAC).<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Dbricks_mar13.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><SPAN style="font-size: 1rem">Assuming you process the incoming data and persist as tables in Databricks SQL, you will then perform the following steps to establish connectivity to SAP Datasphere</SPAN></P><BR /> <BR /> <H2 id="toc-hId-569116427"><STRONG>Data Federation with Databricks SQL</STRONG></H2><BR /> <H3 id="toc-hId-501685641"><SPAN style="font-size: 16.38px">Prerequisites</SPAN></H3><BR /> <OL><BR /> <LI>You have access to SAP Datasphere with authorization to create a new Data provisioning agent</LI><BR /> <LI>Access to Virtual Machine or On-Premise system where you install Data provisioning agent.</LI><BR /> <LI>You have access to Databricks Clusters as well as SQL warehouse.</LI><BR /> <LI>You have downloaded the <A href="https://www.databricks.com/spark/jdbc-drivers-download" target="_blank" rel="nofollow noopener noreferrer">JDBC driver</A> from Databricks website.</LI><BR /> </OL><BR /> <H2 id="toc-hId-176089417"><STRONG>Databricks Cluster &amp; SQL Access</STRONG></H2><BR /> As mentioned in the previous section, I assume you are already working on Databricks topics. If you are interested in getting access , you can <A href="https://www.databricks.com/try-databricks#account" target="_blank" rel="nofollow noopener noreferrer">sign up</A> for the free trial for 14 days. Or you can sign up from the hyperscaler marketplace such as AWS marketplace for the same.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic5-4.png" height="239" width="562" /></P><BR /> Once you login to your account, you will notice the Unified environment for different workspaces<BR /> <BR /> Data Science and Engineering<BR /> <BR /> Machine Learning<BR /> <BR /> SQL<BR /> <BR /> Navigate to workspace “Data Science and Engineering” and select the compute which you have been using for data transformation. Just to note that when we build Delta Live tables pipelines, it uses its own compute to run pipelines. We will discuss that in the later blogs.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic6-7.png" height="217" width="570" /></P><BR /> Select the all-purpose compute to get additional information.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic7-3.png" /></P><BR /> Navigate to the “Advanced options” to get JDBC connection details<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic8-3.png" height="302" width="544" /></P><BR /> You will find the connection details here. We need to tweak it a bit prior to connecting with generic JDBC connectors.&nbsp; Also, we will be connecting using personal access tokens and not user credentials.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic9-3.png" height="303" width="555" /></P><BR /> &nbsp;<BR /> <BR /> To generate the personal access token, you can generate it from the user settings and save the token for later use.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic10-2.png" /></P><BR /> Here is the modified JDBC URL that we will be using in SAP Datasphere connection. We need to add <STRONG>“IgnoreTransactions=1”</STRONG> to ignore transaction related operations. In your case, you will be just copying the URL from advanced options and add the parameter IgnoreTransactions as shown below<BR /> <PRE class="language-python"><CODE>jdbc:databricks://dbc-xxxxxxxxxxx.cloud.databricks.com:443/default;IgnoreTransactions=1;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/XXXXXXXXXXXXXXXXX268/XX-XX-56fird2a;AuthMech=3;UID=token;PWD=&lt;Personal Access Token&gt;<BR /> </CODE></PRE><BR /> We can now navigate to Databricks SQL to see if we have the necessary schemas and tables to access. The tables were created under the schema “dltcheck”.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic11-1.png" /></P><BR /> &nbsp;<BR /> <H2 id="toc-hId--20424088"><STRONG>Data Provisioning Agent(DP Agent) Installation Instructions</STRONG></H2><BR /> I am not going the discuss the DP agent installation in detail as there are numerous articles posted on the same topic. And will be addressing the specific changes that need to be done for Databricks access.<BR /> <BR /> In order to establish secure connectivity between SAP Datasphere and Databricks SQL, the Data Provisioning Agent(DP agent) has to be installed on a virtual machine and configured. For DP agent installation, you can refer to the following <A href="https://help.sap.com/docs/SAP_DATASPHERE/9f804b8efa8043539289f42f372c4862/8f6185069a51404ebf23c684fee8cf39.html" target="_blank" rel="noopener noreferrer">document</A>. To connect the DP agent to the SAP HANA Cloud tenant of SAP Datasphere, please follow the steps mentioned in this <A href="https://help.sap.com/docs/SAP_DATASPHERE/9f804b8efa8043539289f42f372c4862/e87952d7c656477cb5558e5c2f44ae9c.html" target="_blank" rel="noopener noreferrer">document</A>. Assuming all the steps were completed, the status of the DP agent will be displayed as “Connected”. In my case, the DP agent is DBRICKSNEW.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic12-1.png" height="354" width="536" /></P><BR /> &nbsp;<BR /> <H2 id="toc-hId--216937593"><STRONG><B>Configuration Adjustments on the Virtual Machine</B></STRONG></H2><BR /> Navigate to the folder &lt;dpagent&gt;/camel/lib and copy the jar file that is downloaded from <A href="https://www.databricks.com/spark/jdbc-drivers-download" target="_blank" rel="nofollow noopener noreferrer">Databricks site</A>. Also, extract the jar files in the same location.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic13-2.png" /></P><BR /> And navigate to &lt;dpagent&gt;/camel folder and adjust the properties of configfile-jdbc.properties<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic15.png" height="105" width="586" /></P><BR /> Change the delimident value to BACKTICK.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic16.png" height="84" width="345" /></P><BR /> Save and restart the DP agent. Login to SAP Datasphere to check the status of DP agent. It should display the status as "Connected". Edit the DPagent and select the Agent Adapter “CameJDBCAdapter”<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic17.png" height="279" width="251" /></P><BR /> Now we should be able to connect to Databricks SQL from SAP Datasphere.<BR /> <H2 id="toc-hId--413451098">Establishing Connection from SAP Datasphere</H2><BR /> Navigate to your space and create a new connection for the “Generic JDBC” connector<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic18.png" /></P><BR /> Provide any Business Name and the following details<BR /> <PRE class="language-abap"><CODE>Class : com.databricks.client.jdbc.Driver<BR /> <BR /> JDBC URL : jdbc:databricks://&lt;your databricksaccount&gt;. cloud.databricks.com&gt;:443/default;IgnoreTransactions=1;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/XXXXXXXXXXXXXXXXX268/XX-XX-XXXXXX;AuthMech=3;UID=token;PWD=&lt;Personal Access Token&gt; <BR /> <BR /> </CODE></PRE><BR /> <STRONG>Please copy the JDBC URL as such from Databricks Cluster advanced options</STRONG> and just <STRONG>add</STRONG> the parameter “<STRONG>IgnoreTransactions=1</STRONG>”. Setting this property to 1 ignores any transaction-related operations and returns successfully.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic20.png" /></P><BR /> Provide your Databricks user account credentials or token credentials with user as token and select the Data provisioning agent that you just activated.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic21.png" height="302" width="503" /></P><BR /> With the connection details and configurations done properly, validation should be successful.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic22.png" /></P><BR /> &nbsp;<BR /> <BR /> To make sure we have access to data, let’s use the Data Builder to build an analytical model that could be consumed in SAP Analytics Cloud. Navigate to Data Builder and create a new Graphical View<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic23.png" /></P><BR /> Navigate to Sources-&gt;Connections-&gt;Databricks("Your Business Name For Generic JDBC Connection")-&gt;"Databricks Schema". You will find the list of tables under the schema "dltcheck"<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic24.png" height="326" width="563" /></P><BR /> &nbsp;<BR /> <BR /> Here is the Databricks SQL Access for the same schema "dltcheck"<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic25.png" height="209" width="558" /></P><BR /> Select the data with which you wanted to build the Analytical model. In my case it is bucketraw1,&nbsp; added some calculated columns, aggregated the necessary data, and exposed the relevant columns as the Analytical model “Confirmed_cases”. And the data preview of the model shows the corresponding records too.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic26.png" height="257" width="507" /></P><BR /> This model could be consumed in SAP Analytics Cloud for reporting.<BR /> <H2 id="toc-hId--609964603">Troubleshooting Errors</H2><BR /> 1. If you do not see the connection validated, then there are two options to troubleshoot. Either we can use the generic log files from DP agent to identify the issue or add the log parameters in JDBC URL and collect those specific errors. If you face validation issues, then add these parameters in the jdbc url.<BR /> <BR /> &nbsp;<BR /> <PRE class="language-abap"><CODE>jdbc:databricks://&lt;youraccount&gt;.cloud.databricks.com:443/default;LogLevel=5;LogPath= &lt;foldername&gt;;IgnoreTransactions=1;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/&lt;SQLPath&gt;;AuthMech=3;UID=token;PWD=&lt;token&gt;</CODE></PRE><BR /> Log Level – 5&nbsp;&nbsp; which means enable logging on the DEBUG level, which logs detailed information that is&nbsp; useful for debugging the connector<BR /> <BR /> Logpath – This will be available in the following path /usr/sap/&lt;dpagentfolder&gt;/<BR /> <BR /> The log path can be found on the linux VM and it will generate the specific log files<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic27.png" height="414" width="493" /></P><BR /> 2. If you see some errors related to mismatched input, then please adjust the camel jdbc properties as mentioned in DPAgent Installation Instructions. The “DELIMIDENT” value should be set&nbsp; to “BACKTICK”.<BR /> <PRE class="language-abap"><CODE>2022-12-19 16:31:57,552 [ERROR] [f6053d30-7fcd-436f-bed8-bf4d1358847788523] DefaultErrorHandler | CamelLogger.log [] - Failed delivery for (MessageId: 2567788B8CF359D-0000000000000000 on ExchangeId: 2567788B8CF359D-0000000000000000). Exhausted after delivery attempt: 1 caught: java.sql.SQLException: [Databricks][DatabricksJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: org.apache.hive.service.cli.HiveSQLException: Error running query: org.apache.spark.sql.catalyst.parser.ParseException: mismatched input '"FUNCTION_ALIAS_PREFIX_0"' expecting {&lt;EOF&gt;, ';'}(line 1, pos 33)<BR /> <BR /> == SQL ==<BR /> <BR /> SELECT SUM("confirmed_cases") AS "FUNCTION_ALIAS_PREFIX_0", SUM("deaths") AS "FUNCTION_ALIAS_PREFIX_1", "covidsummarygcs$VT"."county_name" FROM "default"."covidsummarygcs" "covidsummarygcs$VT" GROUP BY "covidsummarygcs$VT"."county_name"</CODE></PRE><BR /> &nbsp;<BR /> <BR /> 3. If you see the communication link failure, then the IgnoreTransactions parameter has not been set in your JDBC URL.<BR /> <P style="overflow: hidden;margin-bottom: 0px">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/Pic28.png" /></P><BR /> As mentioned before, the data federation is enabled through JDBC connector as of now . But things will change with additional connections in the future. Hopefully this helped you in understanding the Data Federation capabilities with Databricks. Please do share your feedback. In case of connection issues, feel free to comment, and will try to help you out.<BR /> <BR /> &nbsp; 2023-03-10T15:56:11+01:00 https://community.sap.com/t5/technology-blogs-by-sap/model-compression-without-compromising-predictive-accuracy-in-sap-hana-pal/ba-p/13564339 Model Compression without Compromising Predictive Accuracy in SAP HANA PAL 2023-03-30T11:29:26+02:00 xinchen https://community.sap.com/t5/user/viewprofilepage/user-id/712820 <H1 id="toc-hId-833948777">1. Introduction</H1><P style=" text-align : justify; ">The recent success of applying state-of-the-art AI algorithms on tasks with modern big data has raised concerns on their efficiency. For instance, ensemble methods like random forest typically require numerous sub-learners to achieve favorable predictive performance, which result in an increasing demand for model storage space <SPAN>as the dataset size increases.</SPAN></P><P style=" text-align : justify; "><SPAN>Such tree-based models may reach GB level, making them difficult to deploy on resource-constrained devices or proving costly in the cloud. Furthermore, a larger model usually leads to higher inference time and energy consumption, which are unacceptable in many real-world applications.</SPAN></P><P style=" text-align : justify; "><SPAN>To address this issue, several efficient methods have been proposed. These approaches aim to make machine learning model inference faster (time-efficient), use fewer computational resources (computationally efficient), require less memory (memory-efficient), and take less disk space (storage-efficient). Among these methods, model compression is one of the most popular. It reduces the size of large models without compromising predictive accuracy.</SPAN><BR /><BR />In SAP HANA <STRONG>Predictive Analysis Library</STRONG> (PAL), we have also introduced lossy model compression techniques in several popular methods including Support Vector Machine (<STRONG>SVM</STRONG>), Random Decision Trees (<STRONG>RDT</STRONG>) and Hybrid Gradient Boosting Tree (<STRONG>HGBT</STRONG>). <SPAN>These techniques minimize the loss of predictive accuracy and do not cause any delay in inference.&nbsp;</SPAN>In the following sections, we will dive deep into the model compression methods applied in SAP HANA PAL. At the end of the blog post, some useful terms and links are listed.</P><P style=" text-align : justify; ">&nbsp;</P><H1 id="toc-hId-637435272">2. Algorithms</H1><P style=" text-align : justify; "><STRONG>Tree-based Algorithms – RDT/ HGBT</STRONG><BR />Regards to these tree-based algorithm whose trees are large and independent and identically distributed random entities that contain many additional characteristics and parameters given the training data. <SPAN>Therefore, the ensemble model is abundant in redundancy which allows us to infer their probability structure and construct an efficient encoding scheme.</SPAN></P><P style=" text-align : justify; ">The compression methodology we applied in RDT/ HGBT focus on the following attributes:</P><UL style=" text-align : justify; "><LI><STRONG>Tree structure</STRONG>: Each of the trees’ structure is represent with a Zaks sequence and then we apply a simple LZ-based encoder after all sequences are concatenated.</LI><LI><STRONG>The split of the nodes</STRONG>&nbsp;(Variable Name, Split Value): Usually, each node is defined by a variable name and a corresponding selected split value. As a result of the recursive construction of the tree, the method assumes that the probabilistic model for a node only depends on its depth and parents. Then, based on probabilistic modeling, models (Variable Name Models and Split Value Models) are clustered via Bregman divergence. Then, the data which corresponds to a model could be compressed by Huffman code according to center probability.</LI><LI><STRONG>The values of the leaves</STRONG>: Also, the method uses a simplified model in which the distribution of the fits in a leaf relies on its depth and parent’s variable name. In the case of classification problems, the usage of entropy coding is suitable as the fits are categorical. However, in the regression problems, quantization techniques like Lloyd-max are required to take over continuous set of values. &nbsp;Such quantization results generally lead to very regularized distortion which could be handled well by setting the distortion level to achieve favorable compression rate.</LI></UL><P style=" text-align : justify; ">Moreover, this lossless compression scheme allows make predictions from the compressed model. The results of compression rate of RDT and HGBT with various number of trees are shown in the following two figures. The dataset (768 rows, 9 columns) used in the example is from Kaggle and the original data comes from National Institute of Diabetes and Digestive and Kidney Diseases.</P><P style=" text-align : justify; "><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/RDT-rate.png" border="0" /></P><P style=" text-align : justify; "><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/03/hgbt_rate.png" border="0" /></P><P style=" text-align : justify; "><STRONG>SVM</STRONG><BR /><BR />The aim of SVM is to find a set of support vectors to distinguish the classes and maximize the margin. Sometimes, the number of support vectors is very huge. In particular, categorical data need to be mapped to be continuous through one-hot encoding technique, which required more space for model storage in JSON/PMML format.</P><P style=" text-align : justify; ">Hence, we applied Lloyd-Max quantization and Huffman coding to compress support vectors into a string in SVM. The scheme also enables predictions from the compressed format. In addition, in one-hot encoding, each categorical value is represented only by a value which can significantly reduce the use of memory.<BR />&nbsp;</P><P style=" text-align : justify; ">&nbsp;</P><H1 id="toc-hId-440921767">3. Terms</H1><P style=" text-align : justify; "><STRONG>Compression Rate</STRONG><BR />Compression Rate = Compressed Size / Uncompressed Size<BR /><BR /><STRONG>Quantization</STRONG><BR />Quantization is the process of mapping continuous infinite values to a smaller set of discrete finite values. One popular quantizer is Lloyd-Max algorithm which designs non-uniform quantizers optimized according to the prevailing pdf of the input data.<BR /><BR /><STRONG>Entropy Coding</STRONG><BR />Entropy is the smallest number of bits needed to represent a symbol.&nbsp; Hence, entropy coding techniques are lossless coding methods which could approach such entropy limit. One common form is Huffman coding which uses a discrete number of bits for each symbol. Another is arithmetic coding, which outputs a bit sequence representing a point inside an interval. The interval is built recursively by the probabilities of the encoded symbols.<BR /><BR /><STRONG>Tree-based Model Compression</STRONG><BR />There are many research directions of model compression of tree ensembles. One popular line focus on pruning techniques such as removing redundant components (features and trees), selecting optimal rule subsets, and choosing an optimal subset of trees. However, such pruning schemes are lossy and no guarantees on the compression rate. Another line is to train an artificial neural network to mimic the functionality of tree ensembles which is faster but both lossy and irreversible.</P><P style=" text-align : justify; ">&nbsp;</P><H1 id="toc-hId-244408262">4. Summary</H1><P style=" text-align : justify; ">In this blog post, we introduce the model compression methodology used in RDT, HGBT and SVM in SAP HANA PAL which could offer lossless model compression without compromising predictive performance. Hope you enjoyed reading this blog post!</P><H3 id="toc-hId-306060195">&nbsp;</H3><H3 id="toc-hId-109546690">Other Useful Links:</H3><OL><LI><A href="https://pypi.org/project/hana-ml/" target="_blank" rel="noopener nofollow noreferrer">hana-ml</A> on Pypi.</LI><LI>Python Machine Learning Client for SAP HANA (hana-ml)&nbsp;<A href="https://help.sap.com/doc/cd94b08fe2e041c2ba778374572ddba9/2024_1_QRC/en-US/hana_ml.html#" target="_self" rel="noopener noreferrer">Documentation</A></LI><LI>R Machine Learning Client for SAP HANA (hana.ml.r) <A href="https://help.sap.com/doc/b64d3cac2f0b42be9ca9fc662715f36b/2024_1_QRC/en-US/index.html" target="_self" rel="noopener noreferrer">Documentation</A></LI><LI>SAP HANA Predictive Analysis Library (PAL)&nbsp;<A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/sap-hana-cloud-sap-hana-database-predictive-analysis-library-pal-sap-hana-cloud-sap-hana-database-predictive-analysis-library-pal-c9eeed7" target="_self" rel="noopener noreferrer">Documentation</A></LI><LI>Other blog posts on HANA Machine Learning:</LI></OL><UL class="lia-list-style-type-circle"><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/fairness-in-machine-learning-a-new-feature-in-sap-hana-cloud-pal/ba-p/13580185" target="_self">Fairness in Machine Learning - A New Feature in SAP HANA Cloud PAL</A></LI><LI><A href="https://blogs.sap.com/2020/12/18/identification-of-seasonality-in-time-series-with-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Identification of Seasonality in Time Series </A></LI><LI><A href="https://blogs.sap.com/2020/12/11/outlier-detection-using-statistical-tests-in-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Outlier Detection using Statistical Tests</A></LI><LI><A href="https://blogs.sap.com/2020/12/16/outlier-detection-by-clustering/" target="_blank" rel="noopener noreferrer">Outlier Detection by Clustering</A></LI><LI><A href="https://blogs.sap.com/2020/12/21/anomaly-detection-in-time-series-using-seasonal-decomposition-in-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Anomaly Detection in Time-Series using Seasonal Decomposition</A></LI><LI><A href="https://blogs.sap.com/2020/12/29/outlier-detection-with-one-class-classification-using-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Outlier Detection with One-class Classification</A></LI><LI><A href="https://blogs.sap.com/2020/12/31/learning-from-labeled-anomalies-for-efficient-anomaly-detection-using-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Learning from Labeled Anomalies for Efficient Anomaly Detection</A></LI><LI><A href="https://blogs.sap.com/2020/12/17/import-multiple-excel-files-into-a-single-sap-hana-table/" target="_blank" rel="noopener noreferrer">Import multiple excel files into a single SAP HANA table</A></LI><LI><A href="https://blogs.sap.com/2020/12/16/copd-study-explanation-and-interpretability-with-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">COPD study, explanation and interpretability</A></LI><LI><A href="https://blogs.sap.com/wp-admin/post.php?post=1262813&amp;action=edit" target="_blank" rel="noopener noreferrer">Model Storage with Python Machine Learning Client for SAP HANA</A></LI><LI><A href="https://blogs.sap.com/2023/03/29/ways-to-accelerate-the-training-process-of-gbdt-models-in-hgbt/?source=email-global-notification-bp-new-in-tag-followed" target="_blank" rel="noopener noreferrer">Ways to Accelerate the Training Process of GBDT Models in HGBT</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/global-explanation-capabilities-in-sap-hana-machine-learning/ba-p/13620594" target="_self">Global Explanation Capabilities in SAP HANA Machine Learning</A>&nbsp;&nbsp;</LI></UL> 2023-03-30T11:29:26+02:00 https://community.sap.com/t5/technology-blogs-by-sap/automatic-outlier-detection-for-time-series-in-sap-hana/ba-p/13559856 Automatic Outlier Detection for Time Series in SAP HANA 2023-06-29T11:06:04+02:00 yangzhi https://community.sap.com/t5/user/viewprofilepage/user-id/861208 In time series, an outlier is a data point that is different from the general behavior of remaining data points. In Predictive Analysis Library (PAL) of SAP HANA, we have automatic outlier detection for time series. You can find more details in <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/outlier-detection?version=2023_2_QRC" target="_blank" rel="noopener noreferrer">Outlier Detection for Time Series in PAL</A>.<BR /> <BR /> In PAL, the outlier detection procedure is divided into two steps. In step 1, we get the residual from the original series. In step 2, we detect the outliers from the residual. <STRONG>In step 1, we have an automatic method.</STRONG><BR /> <BR /> In this blog post, you will learn:<BR /> <UL><BR /> <LI>introduction of outlier in time series and automatic detection method in PAL</LI><BR /> <LI>some use cases of automatic outlier detection</LI><BR /> </UL><BR /> To make it easy to test the performance of automatic outlier detection, we use Z1 score method (the default method) in step 2 and set the parameter THRESHOLD = 3 (the default value). This parameter value is based on 3 sigma rule.<BR /> <BR /> To make it easy to read and show the results, we call the PAL procedure in Jupyter Notebook. For calling the PAL procedure and plotting the results, we need some functions. We put the functions in the Appendix.<BR /> <H1 id="toc-hId-833179075">Introduction</H1><BR /> In time series, outliers can have many causes, such as data entry error, experimental error, sampling error and natural outlier. Outliers have a huge impact on the result of data analysis, such as the seasonality test. Outlier detection is an important data preprocessing for time series analysis.<BR /> <BR /> In this algorithm, the outlier detection procedure is divided into two steps. In step 1, we get the residual from the original series. In step 2, we detect the outliers from the residual. We focus on the automatic method of step 1 in this blog.<BR /> <BR /> In step 1, we have an automatic method. For the automatic method, we combine seasonal decomposition, linear regression, median filter and super smoother. The processes in the automatic method is shown in the picture below.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/auto_procedure.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Processes of Automatic Method</P><BR /> In the output of this algorithm, we have a result table and a statistic table. In the result table, the residual, outlier score and outlier label are included. In the statistic table, some information of the time series and outlier detection method is included. For automatic method, the final smoothing method in step 1 is shown in the statistic table.<BR /> <H1 id="toc-hId-636665570">Test Cases</H1><BR /> To call the PAL procedure with python, we need to import some python packages.<BR /> <PRE class="language-python"><CODE>import numpy as np<BR /> from datetime import datetime<BR /> from pandas import read_table<BR /> import matplotlib.pyplot as plt<BR /> import pandas as pd</CODE></PRE><BR /> <H2 id="toc-hId-569234784">case 1: smooth data without seasonality</H2><BR /> <H3 id="smooth-data-without-seasonality" id="toc-hId-501803998">data</H3><BR /> The data is from <A href="https://github.com/ocefpaf/python4oceanographers/blob/master/content/downloads/notebooks/data/spikey_v.dat" target="_blank" rel="nofollow noopener noreferrer">spikey_v.dat</A>.&nbsp; It is smooth, but without seasonality. The plot of the data is shown with the code below.<BR /> <PRE class="language-python"><CODE>str_path = 'your data path'<BR /> cols = ['j', 'u', 'v', 'temp', 'sal', 'y', 'mn', 'd', 'h', 'mi']<BR /> <BR /> df = read_table(str_path+'spikey_v.dat' , delim_whitespace=True, names=cols)<BR /> <BR /> df.index = [datetime(*x) for x in zip(df['y'], df['mn'], df['d'], df['h'], df['mi'])]<BR /> df = df.drop(['y', 'mn', 'd', 'h', 'mi'], axis=1)<BR /> data = np.full(len(df), np.nan)<BR /> for i in range(len(df)):<BR /> data[i] = df['u'][i]<BR /> plt.plot(data)<BR /> plt.grid()</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/spikey_v_data-1.png" /></P><BR /> <BR /> <H3 id="automatic-outlier-detection" id="toc-hId-305290493">automatic outlier detection</H3><BR /> We call the procedure _SYS_AFL.PAL_OUTLIER_DETECTION_FOR_TIME_SERIES to detect outliers automatically. The python code and results are as follows.<BR /> <PRE class="language-python"><CODE>Outlier_parameters = {<BR /> "AUTO": 1,<BR /> }<BR /> df = pd.concat([pd.DataFrame({"ID":list(range(len(data)))}),pd.DataFrame(data)],axis=1)<BR /> dfOutlierResults, dfStats, dfMetri = OutlierDetectionForTimeSeries(df,Outlier_parameters,cc)<BR /> dfOutlierResults</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/spikey_v_output_table.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>dfStats</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/spikey_v_statistic_table-1.png" /></P><BR /> The results are plotted as below.<BR /> <PRE class="language-python"><CODE>outlier_result_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/spikey_v_output_plots-1.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>outlier_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/spikey_v_outlier-1.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px">From the statistic table, we can see that the final smoothing method is median filter, as the time series is quite smooth. From the above results, we find that PAL miss detecting an outlier. This is because there are two big outliers here and the standard deviation becomes large. From the plots of residual and outlier score, we can find four outliers very clearly. We can adjust the threshold or choose other methods in step 2 to find all outliers.</P><BR /> <BR /> <H2 id="toc-hId--20305731">case 2: non-smooth data without seasonality</H2><BR /> <H3 id="toc-hId--87736517">data</H3><BR /> The data is from R package "fpp2". It is the gold daily price data from January 1st 1985 to March 31th 1989. The data is neither smooth nor seasonal. There are some missing values. The missing values are imputed by linear interpolation. The plot of the data is shown with the code below.<BR /> <PRE class="language-python"><CODE>str_path = 'your data path'<BR /> df = pd.read_csv(str_path+'daily_csv_no_missing_value.csv')<BR /> num = len(df)<BR /> data = np.full(num,np.nan)<BR /> for i in range(num):<BR /> data[i] = df['Price'][i]<BR /> plt.plot(data)<BR /> plt.grid()</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/gold_price_data.png" /></P><BR /> <BR /> <H3 id="automatic-outlier-detection" id="toc-hId--284250022">automatic outlier detection</H3><BR /> We call the procedure _SYS_AFL.PAL_OUTLIER_DETECTION_FOR_TIME_SERIES to detect outliers automatically. The python code and results are as follows.<BR /> <PRE class="language-python"><CODE>Outlier_parameters = {<BR /> "AUTO": 1,<BR /> }<BR /> df = pd.concat([pd.DataFrame({"ID":list(range(len(data)))}),pd.DataFrame(data)],axis=1)<BR /> dfOutlierResults, dfStats, dfMetri = OutlierDetectionForTimeSeries(df,Outlier_parameters,cc)<BR /> dfOutlierResults</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/gold_price_output_table.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>dfStats</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/gold_price_statistic_table.png" /></P><BR /> The results are plotted as below.<BR /> <PRE class="language-python"><CODE>outlier_result_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/gold_price_output_plots.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>outlier_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/gold_price_outlier.png" /></P><BR /> From the statistic table, we can see that the final smoothing method is super smoother, as the time series is not so smooth. From the above results, we find that PAL detect the outlier at t = 769 successfully and also consider some other points as outliers. From the plots of residual and outlier score, we can find that the outlier at t = 769 is very obvious. We can adjust the threshold or choose other methods in step 2 to only detect the outlier at t = 769.<BR /> <H2 id="toc-hId--609846246">case 3: smooth data with seasonality</H2><BR /> <H3 id="toc-hId--677277032">data</H3><BR /> The data is synthetic. It is seasonal with period = 40. There are four obvious outliers in the time series. The time series is as below.<BR /> <PRE class="language-python"><CODE>import math<BR /> random_seed = 3<BR /> np.random.seed(random_seed)<BR /> cols = 200 # length of time series<BR /> cycle = 40<BR /> outlier_idx = [30, 45, 73, 126, 159, 173]<BR /> timestamp = np.full(cols,np.nan,dtype = int)<BR /> for i in range(cols):<BR /> timestamp[i] = i<BR /> seasonal = np.full(cols,np.nan,dtype = float)<BR /> for i in range(cols):<BR /> seasonal[i] = math.sin(2*math.pi/cycle*timestamp[i])<BR /> const = np.full(cols,2,dtype = float)<BR /> noise = np.full(cols,0,dtype = float)<BR /> for i in range(cols):<BR /> noise[i] = 0.2*(np.random.rand()-0.5)<BR /> trend = 0.01*timestamp<BR /> outlier = np.full(cols,0,dtype = float)<BR /> for i in outlier_idx:<BR /> outlier[i] = 4*(np.random.rand()-0.5)<BR /> data = seasonal + const + noise + trend + outlier<BR /> plt.plot(data)<BR /> plt.grid()</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/seasonal2_data.png" /></P><BR /> <BR /> <H3 id="automatic-outlier-detection" id="toc-hId--949021906">automatic outlier detection</H3><BR /> We call the procedure _SYS_AFL.PAL_OUTLIER_DETECTION_FOR_TIME_SERIES to detect outliers automatically. The python code and results are as follows.<BR /> <PRE class="language-python"><CODE>Outlier_parameters = {<BR /> "AUTO": 1,<BR /> }<BR /> df = pd.concat([pd.DataFrame({"ID":list(range(len(data)))}),pd.DataFrame(data)],axis=1)<BR /> dfOutlierResults, dfStats, dfMetri = OutlierDetectionForTimeSeries(df,Outlier_parameters,cc)<BR /> dfOutlierResults</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/seasonal2_output_table.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>dfStats</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/seasonal2_statistic_table.png" /></P><BR /> The results are plotted as below.<BR /> <PRE class="language-python"><CODE>outlier_result_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/seasonal2_output_plots.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>outlier_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/seasonal2_outlier.png" /></P><BR /> From the statistic table, we can see that the final smoothing method is median filter and seasonal decomposition, followed by super smoother, as the time series is quite smooth and seasonal. From the above results, we can see that the four obvious outliers are detected by PAL.<BR /> <H2 id="toc-hId--852132404">case 4: non-smooth data with seasonality</H2><BR /> <H3 id="toc-hId--1342048916">data</H3><BR /> The data is monthly ice cream data. The period is 12. You can find the data in <A href="https://github.com/ritvikmath/Time-Series-Analysis/blob/master/ice_cream_interest.csv" target="_blank" rel="nofollow noopener noreferrer">ice_cream_interest.csv</A>. There are two obvious outliers in the time series. The plot of the time series is as below.<BR /> <PRE class="language-python"><CODE>str_path = 'your data path'<BR /> df = pd.read_csv(str_path+'ice_cream_interest.csv')<BR /> data = np.full(len(df),np.nan,dtype = float)<BR /> for i in range(len(df)):<BR /> data[i] = df['interest'][i]<BR /> plt.plot(data)<BR /> plt.grid()</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/ice_cream_data.png" /></P><BR /> <BR /> <H3 id="automatic-outlier-detection" id="toc-hId--1538562421">automatic outlier detection</H3><BR /> We call the procedure _SYS_AFL.PAL_OUTLIER_DETECTION_FOR_TIME_SERIES to detect outliers automatically. The python code and results are as follows.<BR /> <PRE class="language-python"><CODE>Outlier_parameters = {<BR /> "AUTO": 1,<BR /> }<BR /> df = pd.concat([pd.DataFrame({"ID":list(range(len(data)))}),pd.DataFrame(data)],axis=1)<BR /> dfOutlierResults, dfStats, dfMetri = OutlierDetectionForTimeSeries(df,Outlier_parameters,cc)<BR /> dfOutlierResults</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/ice_cream_output_table.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>dfStats</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/ice_cream_statistic_table.png" /></P><BR /> The results are plotted as below.<BR /> <PRE class="language-python"><CODE>outlier_result_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/ice_cream_output_plots.png" /></P><BR /> <BR /> <PRE class="language-python"><CODE>outlier_plot(dfOutlierResults)</CODE></PRE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/06/ice_cream_outlier.png" /></P><BR /> From the statistic table, we can see that the final smoothing method is seasonal decomposition, followed by super smoother, as the time series is seasonal, but not so smooth. From the above results, we can see that the two obvious outliers are detected by PAL.<BR /> <H1 id="toc-hId--1148269912">Conclusions</H1><BR /> In this blog post, we describe what is outlier in time series and provide an automatic outlier detection method for time series in PAL. We also provide some examples to show how to call the automatic outlier detection procedure and show the detection results. From the above results, we can see that the automatic method can detect outliers in different time series. Hope you enjoy reading this blog!<BR /> <BR /> The method will also be included in hana-ml. If you want to learn more about the automatic outlier detection method for time series in SAP HANA Predictive Analysis Library (PAL) and hana-ml, please refer to the following links:<BR /> <BR /> <A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-predictive-analysis-library/outlier-detection?version=2023_2_QRC" target="_blank" rel="noopener noreferrer">Outlier Detection for Time Series in PAL</A><BR /> <BR /> <A href="https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/pal/algorithms/hana_ml.algorithms.pal.tsa.outlier_detection.OutlierDetectionTS.html#hana_ml.algorithms.pal.tsa.outlier_detection.OutlierDetectionTS" target="_blank" rel="noopener noreferrer">Outlier Detection for Time Series in hana-ml (automatic method will be included after 2023 Q3)</A><BR /> <BR /> &nbsp;<BR /> <H3 id="toc-hId--1931589431">Other Useful Links:</H3><BR /> <A href="https://blogs.sap.com/2020/12/11/outlier-detection-using-statistical-tests-in-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Outlier Detection using Statistical Tests in Python Machine Learning Client for SAP HANA</A><BR /> <BR /> <A href="https://blogs.sap.com/2020/12/16/outlier-detection-by-clustering/" target="_blank" rel="noopener noreferrer">Outlier Detection by Clustering using Python Machine Learning Client for SAP HANA</A><BR /> <BR /> <A href="https://blogs.sap.com/2020/12/21/anomaly-detection-in-time-series-using-seasonal-decomposition-in-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Anomaly Detection in Time-Series using Seasonal Decomposition in Python Machine Learning Client for SAP HANA</A><BR /> <BR /> <A href="https://blogs.sap.com/2020/12/29/outlier-detection-with-one-class-classification-using-python-machine-learning-client-for-sap-hana/" target="_blank" rel="noopener noreferrer">Outlier Detection with One-class Classification using Python Machine Learning Client for SAP HANA</A><BR /> <H1 id="toc-hId--1541296922"></H1><BR /> <H1 id="toc-hId--1737810427">Appendix</H1><BR /> <H2 id="toc-hId-2067240357">SAP HANA Connection</H2><BR /> <PRE class="language-python"><CODE>import hana_ml<BR /> from hana_ml import dataframe<BR /> conn = dataframe.ConnectionContext('host', 'port', 'username', 'password')</CODE></PRE><BR /> <H2 id="toc-hId-1870726852">Functions for Table</H2><BR /> <PRE class="language-python"><CODE>def createEmptyTable(table_name, proto, cc):<BR /> with cc.connection.cursor() as cur:<BR /> try:<BR /> joint = []<BR /> for key in proto:<BR /> joint.append(" ".join(['"{:s}"'.format(key), proto[key]]))<BR /> cur.execute('CREATE COLUMN TABLE %s (%s);' %<BR /> (table_name, ",".join(joint)))<BR /> except:<BR /> print(<BR /> f"\"CREATE TABLE {table_name}\" was unsuccessful. Maybe the table has existed.")<BR /> <BR /> def dropTable(table_name, cc):<BR /> with cc.connection.cursor() as cur:<BR /> try:<BR /> cur.execute(f"DROP TABLE {table_name}")<BR /> except:<BR /> print(f"\"DROP TABLE {table_name}\" was unsuccessful. Maybe the table does not exist yet.")<BR /> <BR /> <BR /> def createTableFromDataFrame(df, table_name, cc):<BR /> dropTable(table_name, cc)<BR /> dt_ml = dataframe.create_dataframe_from_pandas(cc, df, table_name=table_name, table_structure={"MODEL_CONTENT":"NCLOB"})<BR /> # dt_ml = dataframe.create_dataframe_from_pandas(cc, df, table_name=table_name, table_structure={"COL1":"CLOB"})<BR /> return dt_ml</CODE></PRE><BR /> <H2 id="toc-hId-1842397038">Function of Calling the PAL Procedure of Outlier Detection for Time Series</H2><BR /> <PRE class="language-python"><CODE>def OutlierDetectionForTimeSeries(df, parameters, cc,<BR /> data_table='ZPD_PAL_DATA_TBL',<BR /> parameter_table='ZPD_PAL_PARAMETERS_TBL',<BR /> result_table='ZPD_PAL_RESULT_TBL',<BR /> stats_table='ZPD_PAL_STATS_TBL',<BR /> metri_table='ZPD_PAL_METRI_TBL'):<BR /> <BR /> # Input table<BR /> createTableFromDataFrame(df, data_table, cc)<BR /> <BR /> # Result table<BR /> dropTable(result_table, cc)<BR /> createEmptyTable(result_table, {<BR /> "TIMESTAMP": "INTEGER","RAW_DATA":"DOUBLE","RESIDUAL":"DOUBLE","OUTLIER_SCORE":"DOUBLE","IS_OUTLIER":"INTEGER"}, cc)<BR /> <BR /> # Metri table<BR /> dropTable(metri_table, cc)<BR /> createEmptyTable(metri_table, {<BR /> "STAT_NAME": "NVARCHAR(1000)","VALUE":"DOUBLE"}, cc)<BR /> <BR /> # Stats table<BR /> dropTable(stats_table, cc)<BR /> createEmptyTable(stats_table, {<BR /> "STAT_NAME": "NVARCHAR(1000)", "STAT_VALUE": "NVARCHAR(1000)"}, cc)<BR /> <BR /> # Parameter table<BR /> dropTable(parameter_table, cc)<BR /> createEmptyTable(parameter_table, {"PARAM_NAME": "nvarchar(256)", "INT_VALUE": "integer",<BR /> "DOUBLE_VALUE": "double", "STRING_VALUE": "nvarchar(1000)"}, cc)<BR /> <BR /> if parameters:<BR /> with cc.connection.cursor() as cur:<BR /> for parName, parValue in parameters.items():<BR /> <BR /> if isinstance(parValue, str):<BR /> parValue = f"'{parValue}'"<BR /> parametersSQL = f"{parValue if isinstance(parValue,int) else 'NULL'}, {parValue if isinstance(parValue,float) else 'NULL'}, { parValue if isinstance(parValue,str) else 'NULL'}"<BR /> cur.execute(<BR /> f"INSERT INTO {parameter_table} VALUES ('{parName}', {parametersSQL});")<BR /> <BR /> elif isinstance(parValue,list):<BR /> for x in parValue:<BR /> if isinstance(x, str):<BR /> x = f"'{x}'"<BR /> parametersSQL = f"{x if isinstance(x,int) else 'NULL'}, {x if isinstance(x,float) else 'NULL'}, { x if isinstance(x,str) else 'NULL'}"<BR /> cur.execute(<BR /> f"INSERT INTO {parameter_table} VALUES ('{parName}', {parametersSQL});")<BR /> else:<BR /> parametersSQL = f"{parValue if isinstance(parValue,int) else 'NULL'}, {parValue if isinstance(parValue,float) else 'NULL'}, { parValue if isinstance(parValue,str) else 'NULL'}"<BR /> cur.execute(<BR /> f"INSERT INTO {parameter_table} VALUES ('{parName}', {parametersSQL});")<BR /> <BR /> else:<BR /> print("No parameters given using default values.")<BR /> <BR /> sql_str = f"\<BR /> do begin \<BR /> lt_data = select * from {data_table}; \<BR /> lt_control = select * from {parameter_table};\<BR /> CALL _SYS_AFL.PAL_OUTLIER_DETECTION_FOR_TIME_SERIES(:lt_data, :lt_control, lt_res, lt_stats, lt_metri); \<BR /> INSERT INTO {result_table} SELECT * FROM :lt_res; \<BR /> INSERT INTO {stats_table} SELECT * FROM :lt_stats;\<BR /> INSERT INTO {metri_table} SELECT * FROM :lt_metri; \<BR /> end;"<BR /> <BR /> with cc.connection.cursor() as cur:<BR /> cur.execute(sql_str)<BR /> <BR /> return cc.table(result_table).collect(), cc.table(stats_table).collect(), cc.table(metri_table).collect()<BR /> </CODE></PRE><BR /> <H2 id="toc-hId-1645883533">Functions of Plotting Results</H2><BR /> <PRE class="language-python"><CODE>def outlier_result_plot(dResults):<BR /> dResults.sort_values(by = list(dResults)[0], inplace = True, ascending = True)<BR /> raw_data = np.array(dResults['RAW_DATA'])<BR /> residual = np.array(dResults['RESIDUAL'])<BR /> outlier_score = np.array(dResults['OUTLIER_SCORE'])<BR /> is_outlier = np.array(dResults['IS_OUTLIER'])<BR /> plt.figure(figsize = (24,4.5))<BR /> plt.subplot(1,4,1)<BR /> plt.plot(raw_data)<BR /> plt.grid()<BR /> plt.title('RAW_DATA')<BR /> plt.subplot(1,4,2)<BR /> plt.plot(residual)<BR /> plt.grid()<BR /> plt.title('RESIDUAL')<BR /> plt.subplot(1,4,3)<BR /> plt.plot(outlier_score)<BR /> plt.grid()<BR /> plt.title('OUTLIER_SCORE')<BR /> plt.subplot(1,4,4)<BR /> plt.plot(is_outlier)<BR /> plt.grid()<BR /> plt.title('IS_OUTLIER')</CODE></PRE><BR /> <PRE class="language-python"><CODE>def outlier_plot(dResults):<BR /> dResults.sort_values(by = list(dResults)[0], inplace = True, ascending = True)<BR /> raw_data = np.array(dResults['RAW_DATA'])<BR /> is_outlier = np.array(dResults['IS_OUTLIER'])<BR /> outlier_idx = np.array([],dtype = int)<BR /> for i in range(len(is_outlier)):<BR /> if is_outlier[i] == 1:<BR /> outlier_idx = np.append(outlier_idx,i)<BR /> plt.plot(raw_data)<BR /> plt.scatter(outlier_idx,raw_data[outlier_idx],color = 'red')<BR /> plt.grid()<BR /> plt.title("series and outlier")</CODE></PRE> 2023-06-29T11:06:04+02:00 https://community.sap.com/t5/technology-blogs-by-sap/5-steps-to-a-business-data-fabric/ba-p/13580358 5 Steps to a Business Data Fabric 2023-10-17T19:31:56+02:00 SavannahVoll https://community.sap.com/t5/user/viewprofilepage/user-id/13466 <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/291513_GettyImages-1146500457_small.jpg" /></P><BR /> <SPAN data-contrast="auto">Managing and leveraging data can be a daunting task. Businesses grapple with complex datasets from many different and unconnected sources, including operations, finance, marketing, customer success, and more. Plus, a lot of organizations are geographically dispersed and have complicated use cases or specific needs, like storing data across cloud, hybrid, multi-cloud, and on-premises devices.</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto"> A </SPAN><A href="https://blogs.sap.com/2023/09/15/what-is-a-business-data-fabric/" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">business data fabric</SPAN></A><SPAN data-contrast="auto"> offers a solution.</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">This data management architecture provides an integrated, semantically-rich data layer over underlying data landscapes to deliver scalable access to data without duplication. </SPAN><SPAN data-contrast="none">In other data platforms, when data is extracted from core systems, much of its original context is lost. A business data fabric preserves this context, helping ensure the data remains meaningful and relevant for decision-making, regardless of its origin.</SPAN> <SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">This approach </SPAN><SPAN data-contrast="auto">offers a number of </SPAN><A href="https://blogs.sap.com/2023/09/18/3-benefits-of-a-business-data-fabric/" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">benefits</SPAN></A><SPAN data-contrast="auto"> including enhanced data accessibility, improved data governance, and accelerated insights.</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">But how do you get started?</SPAN><SPAN data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H2 id="toc-hId-964759435"><STRONG>Implementation framework&nbsp;</STRONG></H2><BR /> <SPAN data-contrast="auto">Let’s look at a high-level framework for implementing a business data fabric architecture in your organization.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H3 id="toc-hId-897328649"><STRONG>1. Data Ingestion&nbsp;</STRONG></H3><BR /> <SPAN data-contrast="auto">The first step is to ensure that all your data, whether it’s structured or unstructured, can be easily ingested into the system. A business data fabric, with its open data ecosystem, allows for simple data ingestion, regardless of the source or the format of the data.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H3 id="toc-hId-700815144"><STRONG>2. Data Integration&nbsp;</STRONG></H3><BR /> <SPAN data-contrast="auto">Data from various sources must be integrated and transformed into a unified format easily consumed by data users. The interoperability of a business data fabric enables data from different sources to be combined and connected rather than being moved around.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H3 id="toc-hId-504301639"><STRONG>3. Data Governance&nbsp;</STRONG></H3><BR /> <SPAN data-contrast="auto">With the growing c</SPAN><SPAN data-contrast="auto">omplexity and volume of data, governance becomes an increasingly important topic. This includes ensuring data quality, privacy, and compliance with various regulations. A business data fabric ensures effective governance by maintaining metadata, lineage, and control measures.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H3 id="toc-hId-307788134"><STRONG>4. Data Cataloging&nbsp;</STRONG></H3><BR /> <SPAN data-contrast="auto">This involves creating an inventory of data assets and their metadata. The catalog serves as a single source of truth for users to find, understand, and trust the data they need. It’s a critical component of the business data fabric that allows data consumers to understand the business semantics.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H3 id="toc-hId-111274629"><STRONG>5. Data Consumption&nbsp;</STRONG></H3><BR /> <SPAN data-contrast="auto">This is about delivering the right data, in the right format, at the right time, to the right people. The business data fabric supports data federation, which enables unified and consistent access to data across diverse sources, reducing redundancy. It ensures data is presented in business-friendly terms and contexts, making it simple for data consumers to interpret and use the data for their specific use cases.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">This is where SAP provides the foundation for a business data fabric: SAP Datasphere.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H2 id="toc-hId--214321595"><STRONG>Transform your organization with SAP Datasphere&nbsp;&nbsp;</STRONG></H2><BR /> <A href="https://www.sap.com/canada/products/technology-platform/datasphere.html" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">SAP Datasphere</SPAN></A><SPAN data-contrast="auto"> is a comprehensive data service that empowers users&nbsp;to provide seamless and scalable access to mission-critical business data.&nbsp;</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="auto">It makes it easy for organizations to deliver meaningful data to every data consumer with business context and logic intact. </SPAN><SPAN data-contrast="none">As organizations need accurate data that is quickly available and described with business-friendly terms, this approach enables data professionals to permeate the clarity that business semantics provide throughout every use case.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="none">In a major moment for our industry and customers, SAP is partnering with other open data partners —&nbsp;</SPAN><A href="https://www.databricks.com/" target="_blank" rel="nofollow noopener noreferrer"><SPAN data-contrast="none">Databricks</SPAN></A><SPAN data-contrast="none">,&nbsp;</SPAN><A href="https://collibra.com/sap-partnership" target="_blank" rel="nofollow noopener noreferrer"><SPAN data-contrast="none">Collibra</SPAN></A><SPAN data-contrast="none">,&nbsp;</SPAN><A href="https://www.confluent.io/" target="_blank" rel="nofollow noopener noreferrer"><SPAN data-contrast="none">Confluent</SPAN></A><SPAN data-contrast="none">, </SPAN><A href="https://www.datarobot.com/blog/datarobot-and-sap-partner-to-deliver-joint-enterprise-ai-solution/" target="_blank" rel="nofollow noopener noreferrer"><SPAN data-contrast="none">DataRobot,</SPAN></A><SPAN data-contrast="none"> and </SPAN><A href="https://discover.sap.com/google/en-us/index.html" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">Google Cloud</SPAN></A><SPAN data-contrast="none"> — to radically simplify customers’ data landscapes. By closely integrating their data and AI platforms with SAP Datasphere, organizations can access their mission-critical business data across any cloud infrastructure.</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <BR /> <SPAN data-contrast="none">SAP Datasphere, and its open data ecosystem, is the technology foundation that enables a </SPAN><A href="https://news.sap.com/2023/03/sap-datasphere-power-of-business-data/" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">business data fabric</SPAN></A><SPAN data-contrast="none">. </SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <H2 id="toc-hId--410835100"><STRONG>Learn more&nbsp;&nbsp;&nbsp;</STRONG></H2><BR /> <SPAN data-contrast="auto">Read the new </SPAN><A href="https://www.sap.com/documents/2023/10/4675c6a3-927e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">e-book</SPAN></A><SPAN data-contrast="auto"> to learn more about the practical applications of a business data fabric, including: </SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <UL><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><SPAN data-contrast="auto">Why you need a business data fabric</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN></LI><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="2" data-aria-level="1"><SPAN data-contrast="auto">How to implement a business data fabric&nbsp;</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN></LI><BR /> <LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" data-aria-posinset="3" data-aria-level="1"><SPAN data-contrast="auto">Five business data fabric use cases</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN></LI><BR /> </UL><BR /> <SPAN data-contrast="auto">Get started with the </SPAN><A href="https://www.sap.com/documents/2023/10/4675c6a3-927e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><SPAN data-contrast="none">Five Steps to a Business Data Fabric Architecture</SPAN></A><SPAN data-contrast="auto"> e-book today.&nbsp;&nbsp;</SPAN><SPAN data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</SPAN><BR /> <P style="overflow: hidden;margin-bottom: 0px"><A href="https://www.sap.com/documents/2023/10/4675c6a3-927e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Five-Steps-to-a-BDF_Paid_1200x627_V2.png" /></A></P><BR /> &nbsp;<BR /> <BR /> &nbsp; 2023-10-17T19:31:56+02:00 https://community.sap.com/t5/technology-blogs-by-sap/why-business-data-is-fundamental-to-artificial-intelligence/ba-p/13572569 Why Business Data is Fundamental to Artificial Intelligence 2023-10-30T23:09:56+01:00 i032821 https://community.sap.com/t5/user/viewprofilepage/user-id/148569 The introduction of cloud computing has enabled organisations all over the world to store vast amounts of data in a cost-effective way as they digitally transform their business operations.&nbsp; Data has commonly been referred to as the 'new oil' and is where companies are looking to help increase their productivity going forward.&nbsp; However, in order to harness this technology the data needs to be relevant, reliable and responsible.&nbsp; As the adage goes, garbage in, garbage out.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Image-01.png" /></P><BR /> &nbsp;<BR /> <BR /> AI serves as a powerful tool for extracting actionable insights from the vast amount of reliable data generated and stored within SAP systems.&nbsp; Combining AI with SAP BTP, advanced data analytics and machine learning algorithms becomes possible, allowing organisations to tap into the potential of their SAP data along with the AI technologies available in the market.<BR /> <BR /> Five pillars support SAP BTP: App development, automation, integration, data analytics, and AI. These pillars interplay with embedded intelligent technologies like situation handling, machine learning, and analytics, all fully integrated within the SAP S/4HANA Cloud. Furthermore, side-by-side capabilities through SAP BTP offer additional intelligent industry functionalities like Intelligent Situation Automation, SAP Build Process Automation, and chatbot technology.<BR /> <BR /> By harnessing artificial intelligence, SAP BTP combines business data from S4 with external data, enabling the creation of increasingly precise models in real-time.&nbsp; This ensures a versatile and agile platform that propels innovation while retaining a clean digital core. This demonstrates a shift from traditional systems of record to systems of intelligence.<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>AI-Powered Capabilities&nbsp;</STRONG><BR /> <BR /> SAP has embedded AI into its products for many years, from journal reconciliations in S4 to AI-powered writing assistants aimed to streamline HR-related tasks in Success Factors.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Image-02.png" /></P><BR /> &nbsp;<BR /> <BR /> These innovative functionalities are not merely theoretical but are practically applicable, ensuring HR admins, managers, and employees can operate more efficiently.&nbsp; In fact, these innovations exist across all the functions in your SAP landscape such as procurement, finance, and human resources.<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>How to get started?</STRONG><BR /> <BR /> Automation is pivotal for managing manual and repetitive tasks, especially those involving the consolidation and manipulation of data from diverse sources like MS Excel, vendor portals, and SAP systems. High-volume processes, often exceeding 1000 steps a day—such as data migrations and approvals—and those requiring access to multiple applications, can be streamlined, ensuring seamless operation across your SAP environment.<BR /> <BR /> SAP has provided templates across all the business functions to accelerate these initiatives, as shown below.<BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Image-03.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>A More Advanced AI Use Case</STRONG><BR /> <BR /> The transition from a rules-based approach to an AI-empowered, data-driven model is illustrated through an example case study of an Australian customer.&nbsp; A decade ago, an employee scripted manual “if:then” statements for road upgrades; a process that has now been revolutionised by AI. AI can now analyse these rules and infuse them with real-time data like weather, road usage, and vehicle types. As a part of their operations, this customer assesses road conditions using specialised trucks called profilometers, generating colossal data volumes that outpace their storage capacities. SAP BTP, however, can house this data in expansive lakes, giving AI the agility to model exponentially precise “if:then” statements.<BR /> <BR /> &nbsp;<BR /> <BR /> The shift will allow this customer to manage large datasets from disparate sources seamlessly, scaling memory and compute capabilities to handle big data without losing granularity. Moreover, unlike fixed rules, the AI algorithms continually evolve based on data, thereby ensuring maintenance and road upgrade strategies that are timely, relevant, and efficient.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/Image-05-2.png" /></P><BR /> In the realm of road maintenance, AI’s practical application is manifest, where even a small percentage improvement can result in significant savings for this customer.&nbsp; This financial efficacy, combined with the potential to extend the useful life of assets, underscores the tangible, impactful benefits of combining AI with SAP BTP.<BR /> <BR /> <STRONG>In Summation</STRONG><BR /> <BR /> Early AI integration can offer businesses a decisive advantage. SAP’s AI vision isn’t just about pioneering technology; it's about tangible, real-world applications. From simple tools deployable within days to intricate endeavours with broad impact.<BR /> <BR /> If you’d like to find out about the value AI can bring to businesses through automation and explore other use cases, then visit the <A href="https://www.sap.com/australia/products/artificial-intelligence.html" target="_blank" rel="noopener noreferrer"><STRONG>SAP Business AI</STRONG></A> website. 2023-10-30T23:09:56+01:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-and-dxc-team-plan-to-deliver-rise-with-sap-s-4hana-cloud-in-customer/ba-p/13578185 SAP and DXC team plan to deliver RISE with SAP S/4HANA Cloud, in customer data centers and co-location facilities, creating a new and powerful platform for digital transformation 2023-11-06T18:39:34+01:00 j_zarb https://community.sap.com/t5/user/viewprofilepage/user-id/631199 SAP and DXC aim to deliver RISE with SAP S/4HANA Cloud, private edition, customer data center option as a turn-key service delivered by DXC.&nbsp; The new service is ideally suited for Private Cloud customers and other managed services customers who wish to run SAP either from their own data center or a DXC managed data center and get the transformational benefits of RISE with SAP.<BR /> <BR /> In this blog, DXC reaffirms its commitment as a Partner Managed Cloud (PMC) service provider of RISE with SAP by expanding its distinct deployment capabilities already announced with DXC Hyperscaler solutions to support the customer data center option.<BR /> <BR /> This partnership empowers DXC and SAP to offer a comprehensive catalog of managed services and extraordinary opportunities that surpass what each entity could achieve independently, benefiting our mutual customers.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/DXC.png" /></P><BR /> <STRONG>RISE with SAP S/4HANA Cloud, private edition, customer data center option</STRONG> or “CDC” represents the hybridization of SAP’s strategic RISE cloud solution, where a customer can run S/4HANA as a cloud service from their data center; while accessing SAP BTP and SAP Signavio, and all the other innovative RISE components from the public cloud – aka a mixture of internal and external cloud services.&nbsp; For more information about CDC, please visit this dedicated web page: &nbsp;<A href="https://www.sap.com/products/erp/rise/customer-data-center.html" target="_blank" rel="noopener noreferrer">Customer data center option | RISE with SAP</A><BR /> <BR /> Similar to SAP’s cloud solutions, CDC provides diverse deployment options on Lenovo, HPE and Dell infrastructure.&nbsp; DXC enhances this offering further by enabling delivery of SAP and non-SAP Infrastructure as a Service (IaaS), platform as a service (PaaS), and software as a service (SaaS), all backed by a top service level agreement.<BR /> <BR /> <STRONG>With DXC, SAP’s strategic RISE Cloud offering deployable in Customer Data Centers,</STRONG> is specifically designed to:<BR /> <OL><BR /> <LI>Enhance RISE with SAP by harnessing DXC’s expertise in delivering SAP and non-SAP managed services and enabling mutual customers to become more agile and alleviate the challenges often associated with digital transformation projects. This is achieved through best-of-breed solutions and a wealth of experience and skills.</LI><BR /> <LI>Establish a secure infrastructure and platform for SAP within the customer data centers, backed, managed, designed to perform by SAP and DXC.</LI><BR /> <LI>Empower customers who want to run in their data center (on-premise) while staying aligned with SAP’s cloud innovation agenda, including ML/AI (Machine Learning / Artificial Intelligence), LLMS (large language models), etc.</LI><BR /> <LI>Meet the needs of industries with strict regulatory compliance requirements that may prevent running SAP in a public shared Hyperscaler such as utilities, public sector, healthcare, pharmaceuticals, aerospace &amp; defense, etc.</LI><BR /> <LI>Provide extended services to address specific data sovereignty needs of customers, governments, and industry stakeholders by keeping sensitive data within their national boundaries, governed by local laws.</LI><BR /> <LI>Offer an innovative approach for those seeking a cloud OpEx model while benefiting from a high-performance dedicated onPrem system with minimal latency.</LI><BR /> <LI>Benefit from a dedicated on-premise setup, without the data center environment having to be managed by the customer.</LI><BR /> </OL><BR /> To learn more about the DXC &amp; SAP cloud solutions and the DXC Premier Services for RISE with SAP, please visit the following link: <A href="https://dxc.com/us/en/offerings/applications/eas-sap/dxc-premier-services-for-rise-with-sap" target="_blank" rel="nofollow noopener noreferrer">DXC Premier Services for RISE with SAP</A><BR /> <BR /> All thoughts and questions are welcome, please share your comments below to contribute to this discussion.<BR /> <BR /> Joseph Zarb<BR /> Head of RISE with SAP – Customer Data Center<BR /> SAP RISE Global GTM Execution<BR /> 10 Hudson Yards, 51st Floor, New York NY 10001 USA<BR /> <BR /> j.zarb@sap.com 2023-11-06T18:39:34+01:00 https://community.sap.com/t5/technology-blogs-by-members/how-to-connect-sap-ecc-s-4hana-on-prem-and-private-cloud-with-confluent/ba-p/13575214 How to connect SAP ECC + S/4HANA on-prem and private cloud with Confluent Cloud or Confluent Platform (1) 2023-12-01T15:27:08+01:00 FlorianFarr https://community.sap.com/t5/user/viewprofilepage/user-id/176163 This blog post explains how to connect SAP ECC or S/4HANA on-prem and private cloud editions with Confluent Cloud or Confluent Platform.<BR /> Whether you're using SAP NetWeaver Event-enablement Add-on or ASAPIO Integration Add-on, this step-by-step guide provides all you need as a first step to enable SAP systems for communication with a Confluent broker.<BR /> <H2 id="toc-hId-963983780">Architecture / Connection types</H2><BR /> When connecting SAP with Confluent, it is important to understand that there are two very different approaches in terms of connection architecture.<BR /> <H3 id="toc-hId-896552994"><SPAN style="font-size: 1rem">Using a REST Proxy</SPAN></H3><BR /> "Confluent REST Proxy for Kafka" or a similar product is the standard approach currently and therefore can be considered mandatory for the connectivity.<BR /> Please see <A href="https://github.com/confluentinc/kafka-rest" target="_blank" rel="nofollow noopener noreferrer">https://github.com/confluentinc/kafka-rest</A> for details.<BR /> <BR /> Reason for using REST instead of AMQP is, that SAP ECC does not support streaming protocols and 3rd-party-libraries cannot be used in SAP-certified Add-ons.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/aia_confluent_architecture_2024.png" height="334" width="261" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">SAP-to-Confluent Architecture</P><BR /> <BR /> <H3 id="toc-hId-700039489"><SPAN style="font-size: 1rem">Direct connect/V3:</SPAN></H3><BR /> A Connector for Confluent Cloud direct connect (V3 REST API) is available as pre-release in the download section for registered ASAPIO customers. This connector can only handle outbound connectivity at the time of this blog being published (November 2023). For inbound connectivity, the REST proxy approach above is still required.<BR /> <H3 id="toc-hId-503525984"><SPAN style="font-size: 1rem">AMQP support:</SPAN></H3><BR /> AMQP support is planned to be released by ASAPIO in 2024, for S/4HANA systems.<BR /> <H2 id="toc-hId-177929760">System prerequisites</H2><BR /> Before diving into the integration process, make sure you have the following components available:<BR /> <H3 id="toc-hId-110498974">Software components required on your SAP system</H3><BR /> <UL><BR /> <LI>SAP NetWeaver Event-enablement Add-on (SAP Event Mesh Edition)</LI><BR /> <LI>or, alternatively, ASAPIO Integration Add-on - Framework (full version)</LI><BR /> <LI>ASAPIO Connector for Confluent (using REST proxy)</LI><BR /> </UL><BR /> For direct connect/V3 REST API, a pre-release Connector for Confluent Cloud is available for registered ASAPIO customers.<BR /> <H3 id="toc-hId--86014531">Non-SAP components</H3><BR /> Please make sure you have endpoint URI and authorization data at hand for:<BR /> <UL><BR /> <LI>Confluent Components:<BR /> <UL><BR /> <LI>Confluent REST Proxy for Kafka (<A href="https://docs.confluent.io/platform/current/kafka-rest/index.html" target="_blank" rel="nofollow noopener noreferrer">More info</A>)</LI><BR /> <LI>Confluent Cloud</LI><BR /> <LI>Or, alternatively Confluent Platform</LI><BR /> </UL><BR /> </LI><BR /> </UL><BR /> <STRONG>Licensing</STRONG><BR /> <BR /> All software above requires the purchase of appropriate licenses.<BR /> <H2 id="toc-hId--411610755">Set-up Connectivity</H2><BR /> <H3 id="toc-hId--479041541">1. Create RFC Destinations to Confluent REST Proxy</H3><BR /> Transaction: <CODE>SM59</CODE><BR /> <BR /> Type: "G" (HTTP Connection to External Server)<BR /> <BR /> Target Host: Endpoint of Confluent REST Proxy<BR /> <BR /> Save and perform a "Connection Test" to ensure HTTP status code 200.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog1.png" height="344" width="331" /></P><BR /> <BR /> <H3 id="toc-hId--675555046">2. Set-up Authentication to REST Proxy</H3><BR /> Pre-requisites: Obtain user and password for the REST proxy or exchange certificates with the SAP system.<BR /> <BR /> Transaction: <CODE>SM59</CODE><BR /> <BR /> Choose the correct RFC destination, go to "Logon &amp; Security," and select authentication method:<BR /> <UL><BR /> <LI>"Basic Authentication" with username and password</LI><BR /> <LI>SSL certificate-based authentication</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog2.png" height="243" width="422" /></P><BR /> &nbsp;<BR /> <H3 id="toc-hId--947299920">3. Set-up Basic Settings</H3><BR /> Activate BC-Sets: Use <CODE>SCPR20</CODE> to activate BC-Sets for cloud adapter and codepages.<BR /> <BR /> Configure Cloud Adapter: In <CODE>SPRO</CODE>, go to ASAPIO Cloud Integrator, Maintain Cloud Adapter, and add an entry for the Confluent connector.<BR /> <H3 id="toc-hId--1143813425">4. Set-up Connection Instance</H3><BR /> Transaction: <CODE>SPRO</CODE> or <CODE>/ASADEV/68000202</CODE><BR /> <BR /> Add a new entry specifying connection details, RFC destination, ISO code, and cloud type.<BR /> <H3 id="toc-hId--1340326930">5. Set-up Error Type Mapping</H3><BR /> Create an entry mapping response codes to message types.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog5-1.png" height="243" width="492" /></P><BR /> <BR /> <H3 id="toc-hId--1536840435">6. Set-up Connection Values</H3><BR /> Maintain default values for the connection to Confluent in <CODE>Connections -&gt; Default values</CODE>.<BR /> <TABLE style="height: 96px" width="560"><BR /> <TBODY><BR /> <TR><BR /> <TH style="width: 199.512px">Default Attribute</TH><BR /> <TH style="width: 345.688px">Default Attribute Value</TH><BR /> </TR><BR /> <TR><BR /> <TD style="width: 199.512px">KAFKA_ACCEPT</TD><BR /> <TD style="width: 345.688px">application/vnd.kafka.v2+json</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 199.512px">KAFKA_CALL_METHOD</TD><BR /> <TD style="width: 345.688px">POST</TD><BR /> </TR><BR /> <TR><BR /> <TD style="width: 199.512px">KAFKA_CONTENT_TYPE</TD><BR /> <TD style="width: 345.688px">application/vnd.kafka.json.v2+json<BR /> (or application/vnd.kafka.jsonschema.v2+json)</TD><BR /> </TR><BR /> </TBODY><BR /> </TABLE><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog6.png" height="194" width="490" /></P><BR /> <BR /> <H2 id="toc-hId--1439950933">Set-up Outbound Messaging</H2><BR /> <H3 id="toc-hId--1929867445">1. Create Message Type</H3><BR /> Transaction: <CODE>WE81</CODE><BR /> <BR /> Add a new entry specifying a unique name and description for the integration.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog7.png" height="70" width="490" /></P><BR /> <BR /> <H3 id="toc-hId--2126380950">2. Activate Message Type</H3><BR /> Transaction: <CODE>BD50</CODE><BR /> <BR /> Activate the created message type.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog8.png" height="76" width="283" /></P><BR /> <BR /> <H3 id="toc-hId-1972072841">3. Set-up additional settings in 'Header Attributes'</H3><BR /> Configure the topic, fields for the key, and schema IDs for key/value schemas.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog9.png" height="152" width="529" /></P><BR /> <BR /> <H3 id="toc-hId-1775559336">4. Set up 'Business Object Event Linkage'</H3><BR /> Link the configuration of the outbound object to a Business Object event.<BR /> <H2 id="toc-hId-1872448838">Send a "Simple Notifications" event for testing</H2><BR /> <H3 id="toc-hId-1550716017">1. Create Outbound Object Configuration</H3><BR /> Transaction: <CODE>SPRO</CODE> or <CODE>/ASADEV/68000202</CODE><BR /> <BR /> Select the created connection and go to Outbound Objects.<BR /> <BR /> Add a new entry specifying the object, extraction function module, message type, load type, and response function.<BR /> <H3 id="toc-hId-1354202512">2. Test Outbound Event Creation</H3><BR /> In the example above, please pick any test sales order in transaction <CODE>/nVA02</CODE> and force a change event, e.g., by changing the requested delivery date on header level.<BR /> <H3 id="toc-hId-1157689007">3. Check monitor transaction for actual message and payload</H3><BR /> Access to monitor application<BR /> User must have PFCG role <CODE>/ASADEV/ACI_ADMIN_ROLE</CODE> to access Add-On monitor.<BR /> <BR /> Use transaction <CODE>/n/ASADEV/ACI_MONITOR</CODE> to start the monitor.<BR /> You will see the entry screen with a selection form on top.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog10.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/confluent_blog12.png" /></P><BR /> <STRONG>Congrats, you are now able to send data out to Confluent.</STRONG><BR /> <BR /> In the next blog, we will create a custom payload for the event. 2023-12-01T15:27:08+01:00 https://community.sap.com/t5/technology-blogs-by-members/event-driven-architecture-simplifying-payload-creation-with-payload/ba-p/13577526 Event-driven architecture: Simplifying Payload Creation with Payload Designer 2023-12-11T08:42:28+01:00 bins2 https://community.sap.com/t5/user/viewprofilepage/user-id/661488 <H2 id="toc-hId-964046278"><STRONG>Overview</STRONG></H2><BR /> Configuring payloads for the SAP NetWeaver Add-On for Event enablement has become remarkably straightforward, all thanks to the Payload Designer.<BR /> <BR /> This powerful tool enables you to effortlessly add tables, define relationships with inner joins, left outer joins, rename tables and fields, all through simple configuration.<BR /> <BR /> In this blog post, we will guide you through the process of configuring your payload with just a few easy steps.<BR /> <BR /> If you you are new to SAP Enterprise Messaging in SAP ERP systems and the Integration Add-on, you can have a look at following Blog-Posts:<BR /> <UL><BR /> <LI><A title="Event-driven architecture – now available for SAP ECC users" href="https://blogs.sap.com/?p=1132020" target="_blank" rel="noopener noreferrer">Event-driven architecture – now available for SAP ECC users</A></LI><BR /> <LI><A title="SAP Enterprise Messaging for SAP ERP: HowTo-Guide (Part 1 - Connectivity)" href="https://blogs.sap.com/?p=1185933" target="_blank" rel="noopener noreferrer">SAP Enterprise Messaging for SAP ERP: HowTo-Guide (Part 1 - Connectivity)</A></LI><BR /> <LI><A title="SAP Enterprise Messaging for SAP ERP: HowTo-Guide (Part 2 - First use case)" href="https://blogs.sap.com/?p=1179612" target="_blank" rel="noopener noreferrer">SAP Enterprise Messaging for SAP ERP: HowTo-Guide (Part 2 - First use case)</A></LI><BR /> <LI><A title="Data Events scenario With SAP Event Enablement Add-on for SAP S/4HANA, SAP Event Mesh and SAP Cloud Integration: Step-by-Step Guide" href="https://blogs.sap.com/2022/03/04/data-events-scenario-with-sap-event-enablement-add-on-for-sap-s-4hana-sap-event-mesh-and-sap-cloud-integration-step-by-step-guide/" target="_blank" rel="noopener noreferrer">Data Events scenario With SAP Event Enablement Add-on for SAP S/4HANA, SAP Event Mesh and SAP Cloud Integration: Step-by-Step Guide</A></LI><BR /> <LI><A href="https://blogs.sap.com/2021/08/13/emit-data-events-from-sap-s-4hana-or-sap-ecc-through-sap-netweaver-add-on-for-event-enablement/" target="_blank" rel="noopener noreferrer">Emit Data Events from SAP S/4HANA or SAP ECC through SAP NetWeaver Add-On for Event Enablement</A></LI><BR /> <LI><A href="https://blogs.sap.com/2023/12/01/how-to-connect-sap-ecc-s-4hana-on-prem-and-private-cloud-with-confluent-cloud-or-confluent-platform-1/" target="_blank" rel="noopener noreferrer">How to connect SAP ECC + S/4HANA on-prem and private cloud with Confluent Cloud or Confluent Platform (1)</A></LI><BR /> </UL><BR /> &nbsp;<BR /> <H2 id="toc-hId-767532773"><STRONG>System Prerequisite</STRONG></H2><BR /> One of the Software components needs to be availabvle on your system:<BR /> <UL><BR /> <LI>SAP NetWeaver Event-enablement Add-on (SAP Event Mesh Edition)</LI><BR /> <LI>or, alternatively, ASAPIO Integration Add-on – Framework (full version)</LI><BR /> </UL><BR /> <STRONG>Licensing</STRONG><BR /> <BR /> All software above requires the purchase of appropriate licenses.<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <H2 id="toc-hId-571019268"><STRONG>Creating Custom Payloads with Payload Designer</STRONG></H2><BR /> <H3 id="toc-hId-503588482"><STRONG>Step 1:</STRONG> <STRONG>Creating Custom Payloads with Payload Designer</STRONG></H3><BR /> 1. Navigate to transaction /n/ASADEV/DESIGN.<BR /> <BR /> Click the "Create Payload Designer" button on the main screen and fill in the necessary fields. This action creates the initial version of the payload and takes you to the main screen.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/1-41.png" height="365" width="468" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Creating a Payload Designer version in transaction /n/ASADEV/DESIGN</P><BR /> <BR /> <H3 id="toc-hId-307074977"></H3><BR /> 2. Use the join builder to establish table joins.<BR /> <UL><BR /> <LI>Insert new tables or custom views.</LI><BR /> <LI>Adjust table joins through field connections.</LI><BR /> <LI>Return to the main screen.</LI><BR /> <LI>Note: Parent relationships in the Table section and key fields in the Field section are automatically determined based on hierarchical sorting.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/PD__join.png" /></P><BR /> <BR /> <H3 id="toc-hId-110561472"></H3><BR /> 3. Add additional payload fields from the tables:<BR /> <UL><BR /> <LI>Double click on the preferred table.</LI><BR /> <LI>Select one or multiple fields.</LI><BR /> <LI>Fields can be reordered using sequence numbers.</LI><BR /> </UL><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/2-85.png" /></P><BR /> <BR /> <H3 id="toc-hId--85952033"></H3><BR /> <H3 id="toc-hId--282465538"><STRONG>Step 2: Outbound Configuration Using Payload Designer</STRONG></H3><BR /> To configure outbound objects using Payload Designer, follow these steps:<BR /> <OL><BR /> <LI>Access transaction SPRO.</LI><BR /> <LI>Navigate to IMG &gt; Cloud Integrator – Connection and Replication Object Customizing or directly to transaction: /ASADEV/68000202.</LI><BR /> <LI>Select the created connection.</LI><BR /> <LI>Go to the "Outbound Objects" section.</LI><BR /> <LI>Add a new entry and specify the following:<BR /> <UL><BR /> <LI>Object: Name of the outbound configuration.</LI><BR /> <LI>Extraction Func. Module: /ASADEV/ACI_GEN_PDVIEW_EXTRACT.</LI><BR /> <LI>Load Type: Incremental Load.</LI><BR /> <LI>Trace: Activate for testing purposes.</LI><BR /> <LI>Formatting Func.: /ASADEV/ACI_GEN_VIEW_FORM_CB.</LI><BR /> <LI>Field Payload View Name: Payload Name.</LI><BR /> <LI>Field Payload View Version: Payload Version.</LI><BR /> </UL><BR /> </LI><BR /> </OL><BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/3-12.png" height="396" width="629" /><BR /> <H3 id="toc-hId--478979043"></H3><BR /> <H3 id="toc-hId--675492548"><STRONG>Step 3: </STRONG>See your Payload in the ACI_Monitor</H3><BR /> Navigate to transaction /n/ASADEV/ACI_MONITOR<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ACI_Monitor.png" /></P><BR /> <BR /> <H3 id="toc-hId--947237422"></H3><BR /> <H2 id="toc-hId--850347920"><STRONG>Conclusion</STRONG></H2><BR /> Payload Designer simplifies SAP interface configuration by providing a user-friendly, code-free approach to defining payloads. With its intuitive interface and powerful features, it enables organizations to streamline their data integration processes and improve efficiency in managing payloads for event messages sent to the SAP Event Mesh.<BR /> <BR /> &nbsp; 2023-12-11T08:42:28+01:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-cloud-data-lake-files-%E3%81%B8%E3%81%AE%E6%9C%80%E5%88%9D%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E8%A8%AD%E5%AE%9A/ba-p/13574382 SAP HANA Cloud, data lake Files への最初のアクセス設定 2023-12-19T07:37:51+01:00 Sawa_Ito https://community.sap.com/t5/user/viewprofilepage/user-id/7449 <P>このブログは、2022 年 11 月 15 日に SAP ジャパン公式ブログに掲載されたものを SAP ジャパン公式ブログ閉鎖に伴い転載したものです。<BR /><BR /></P><HR /><P><BR /><BR />このブログは、<SPAN class="">jason.hinsperger</SPAN> が執筆したブログ「<A href="https://blogs.sap.com/2021/08/05/setting-up-initial-access-to-hana-cloud-data-lake-files/" target="_blank" rel="noopener noreferrer"><STRONG>Setting Up Initial Access to HANA Cloud data lake Files</STRONG></A>(2021 年 8 月 5 日)の抄訳です。最新の情報は、<A href="https://blogs.sap.com/tags/7efde293-f35d-4737-b40f-756b6a798216/" target="_blank" rel="noopener noreferrer">SAP Community の最新ブログ</A>や<A href="https://help.sap.com/docs/SAP_HANA_DATA_LAKE?locale=en-US" target="_blank" rel="noopener noreferrer">マニュアル</A>を参照してください。<BR /><BR /></P><HR /><P><BR /><BR />&nbsp;<BR /><BR />SAP HANA Cloud, data lake は、フォーマットのあらゆるタイプのデータのネイティブ形式でのストレージをサポートしています。<BR /><BR />マネージドファイルストレージは、外部のハイパースケーラーアカウントでストレージを設定することなく、あらゆるタイプのファイルをセキュアに格納するストレージを提供します。<BR /><BR />これは、高速 SQL 分析を行う目的で SAP HANA Cloud, data lake にデータを高速投入する必要がある場合や、何等かの目的でデータを extract する場合にとても便利です。<BR /><BR />SAP HANA Cloud, data lake Files への初回のアクセス設定は、特にデータベースのバックグラウンドを持ち、オブジェクトストレージや REST API に詳しくない場合には少し難しいプロセスかもしれません。<BR /><BR />以下は、私が SAP HANA Cloud, data lake files をテストするのに使用したプロセスです。<BR /><BR />SAP HANA Cloud, data lake files はユーザーセキュリティーやアクセスを認証経由で管理するため、ユーザーアクセスの設定には署名付きの証明書の生成が必要です。<BR /><BR />認証局へのアクセスがない場合には、OpenSSL を利用する以下のプロセスを使用してCAと署名付きのクライアント証明書を作成してSAP HANA Cloud, data lake files 設定を更新することができます。<BR />私はこれまで何度もこれでテストしたことがあるので読者の方でも同様に行えるでしょう。<BR /><BR />最初に、CA バンドルを作成してアップロードする必要があります。<BR /><BR />&nbsp;<BR /><BR />以下の OpenSSL コマンドを使用して CA を生成できます。<BR /><BR />openssl genrsa -out ca.key 2048<BR /><BR />&nbsp;<BR /><BR />次に、CA の公開証明書(この場合は 200 日間有効)を作成します。共通名を最低限入力し、他のフィールドを必要に応じて入力します。<BR /><BR />openssl req -x509 -new -key ca.key -days 200 -out ca.crt<BR /><BR />&nbsp;<BR /><BR />クライアント証明書の署名リクエストを作成する必要があります。共通名を最低限提供し、他のフィールドを必要に応じて入力します。<BR /><BR />openssl req -new -nodes -newkey rsa:2048 -out client.csr -keyout client.key<BR /><BR />&nbsp;<BR /><BR />最後に、クライアント証明書を作成します(この場合は 100 日有効)。<BR /><BR />openssl x509 -days 100 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt</P><BLOCKQUOTE><STRONG>*</STRONG><STRONG><EM>備考</EM></STRONG><EM> – CA とクライアント証明書のフィールドがすべて全く同じにならないようにしてください。さもないと、自己署名証明書とみなされ、以下の証明書の認証が失敗します。</EM></BLOCKQUOTE><P><BR />&nbsp;<BR /><BR />証明書が任意の CA によって署名されたことを認証するには(SAP HANA Cloud, data lake に CA 証明書をアップロードしたときにクライアント証明書を認証するために使用できるとわかるように)<BR /><BR />openssl verify -CAfile ca.crt client.crt<BR /><BR />&nbsp;<BR /><BR />次に、SAP HANA Cloud Central でインスタンスを開き、「Manage File Container」を選択し、SAP HANA Cloud, data lake files ユーザーを設定します。<BR /><BR />&nbsp;<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2021/08/HDLFiles_EditConfig.jpg" border="0" /><BR /><BR />&nbsp;<BR /><BR />設定を編集し、「Trusts」セクションの「Add」を選択します。前に生成した ca.crt をコピーまたはアップロードし、「Apply」をクリックします。すぐには「Manage File Container」スクリーンはクローズしないでください。<BR /><BR />&nbsp;<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2021/08/HDLFiles_AddTrust.jpg" border="0" /><BR /><BR />&nbsp;<BR /><BR />これで、管理されたファイルストレージにアクセスできるようにユーザーを構成できるようになりました。<BR /><BR />&nbsp;<BR /><BR />「Authorizations」セクションをスクロールダウンして、「Add」を選択します。新しい入力欄が表示されます。<BR /><BR />&nbsp;<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2021/08/HDLFiles_AddUser-1.jpg" border="0" /><BR /><BR />&nbsp;<BR /><BR />ユーザーのロールをドロップダウンリストから選択します(デフォルトでは admin とユーザーロールがあります)。<BR /><BR />ここからが少し難しいところです。<BR /><BR />リクエストしたときに、ストレージゲートウェイ(SAP HANA Cloud, data lake files へのエントリーポイント)がどのユーザーに対して認証するのか決定できるようクライアント証明書からパターン文字列を追加する必要があります。<BR /><BR />パターン文字列を生成するにあたり、2 つのオプションがあります。<BR />以下の OpenSSL コマンドを使用して、パターン文字列を生成することができます(アウトプットに表示される 「subject= 」 プレフィックスは省略します) 。<BR /><BR />&nbsp;<BR /><BR />openssl x509 -in client.crt -in client.crt -nameopt RFC2253 -subject -noout<BR /><BR />&nbsp;<BR /><BR />あるいは、スクリーンにある「generate pattern」オプションを使用することもできます。<BR />これは、ダイアログボックスを開き、クライアント証明書をアップロード/貼り付けて、自動でパターンを生成します。<BR />証明書は保存せず、パターン文字列だけを保存することに注意してください。<BR /><BR />&nbsp;<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2021/08/HDLFiles_GeneratePattern.jpg" border="0" /><BR /><BR />&nbsp;<BR /><BR />「Apply」をクリックして、権限入力欄にパターン文字列を追加します。</P><BLOCKQUOTE>パターン文字列は、ワイルドカードも使用可能なため、特定のロールの証明書のクラスを認証できることに注意してください。証明書のパターンが複数の認証と一致する場合、使用する認証は、特定の認証エントリーに設定された「Rank」値セットによって制御されます。</BLOCKQUOTE><P><BR />&nbsp;<BR /><BR />これで、REST api 経由で SAP HANA Cloud, data lake files にアクセスして使用することができます。<BR /><BR />私のテストではうまくいったcurl コマンドのサンプルがあります。接続が成功しているかどうかvalicate できます。(インスタンス ID とファイル REST API エンドポイントは HANA Cloud Centralのインスタンス詳細からコピーすることができます)。<BR /><BR />上記で生成して認証の作成に使用したクライアント証明書とキーを使用してください。<BR /><BR />&nbsp;</P><BLOCKQUOTE><EM>curl </EM><EM>は少し tricky なことに注意してください。Windows で試していましたが、Windows 10 バージョン用の curl を動作させることができませんでした。最終的に新しい curl version (7.75.0) をダウンロードしたところ、機能しましたが、Windows で curl から証明書ストアへどうアクセスするのかわからなかったため、SAP HANA Cloud サーバー証明書の認証をスキップするために –insecure’ オプションを使用しなければなりませんでした。</EM><BR /><BR />&nbsp;</BLOCKQUOTE><P><BR />curl --insecure -H "x-sap-filecontainer:&nbsp;<EM>&lt;instance_id&gt;</EM>" --cert ./client.crt --key ./client.key "https://<EM>&lt;Files REST API endpoint&gt;</EM>/webhdfs/v1/?op=LISTSTATUS" -X GET<BR /><BR />&nbsp;<BR /><BR />上記のコマンドは、以下を返します (空のSAP HANA Cloud, data lake)。<BR /><BR />&nbsp;<BR /><BR />{"FileStatuses":{"FileStatus":[]}}<BR /><BR />&nbsp;<BR /><BR />これで、SAP HANA Cloud, data lake files を使用して、あらゆるタイプのファイルを SAP HANA Cloud に格納するための設定は終了です。<BR /><BR />ファイルの管理でサポートされている REST API と引数のフルセットについては、<A href="https://help.sap.com/doc/9d084a41830f46d6904fd4c23cd4bbfa/QRC_2_2021/en-US/html/index.html" target="_blank" rel="noopener noreferrer">マニュアル</A>を参照ください。<BR /><BR />&nbsp;<BR /><BR /></P><HR /><P><BR /><BR />オリジナルのブログはここまでです。<BR /><BR /></P><HR /><P>&nbsp;</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/data_pyramid_1-2.jpg" border="0" /></P><P>&nbsp;</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/data_pyramid_2-2.jpg" border="0" /></P><P><BR /><BR /><BR /></P><HR /><P><BR /><BR />&nbsp;</P> 2023-12-19T07:37:51+01:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-cloud-hana-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89-sap-hana-cloud-data-lake/ba-p/13574477 SAP HANA Cloud, HANA データベースから SAP HANA Cloud, data lake リレーショナルエンジンへの最速のデータ移動方法と移動速度テスト結果 2023-12-19T07:47:55+01:00 Sawa_Ito https://community.sap.com/t5/user/viewprofilepage/user-id/7449 <P>このブログは、2022 年 11 月 17 日に SAP ジャパン公式ブログに掲載されたものを SAP ジャパン公式ブログ閉鎖に伴い転載したものです。<BR /><BR /></P><HR /><P><BR /><BR />このブログは、<SPAN class="">douglas.hoover</SPAN>&nbsp;が執筆したブログ「<A href="https://blogs.sap.com/2022/03/08/the-fastest-way-to-load-data-from-hana-cloud-hana-into-hana-cloud-hana-data-lake/" target="_blank" rel="noopener noreferrer"><STRONG>The fastest way to load data from HANA Cloud, HANA into HANA Cloud, HANA Data Lake</STRONG></A>(2022 年 3 月 8 日)の抄訳です。オリジナルのブログページでのコメントのやりとりなどもぜひご参照ください。<BR /><BR />最新の情報は、<A href="https://blogs.sap.com/tags/7efde293-f35d-4737-b40f-756b6a798216/" target="_blank" rel="noopener noreferrer">SAP Community の最新ブログ</A>や<A href="https://help.sap.com/docs/SAP_HANA_DATA_LAKE?locale=en-US" target="_blank" rel="noopener noreferrer">マニュアル</A>を参照してください。<BR /><BR /></P><HR /><P><BR /><BR /></P><H2 id="toc-hId-963956100">&nbsp;</H2><P>&nbsp;</P><H2 id="toc-hId-767442595">&nbsp;</H2><P><BR />このブログは、SAP HANA データ戦略ブログシリーズの1つです。<BR /><A href="https://blogs.sap.com/2019/10/14/sap-hana-data-strategy/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2019/10/14/sap-hana-data-strategy/</A></P><H1 id="toc-hId-441846371">&nbsp;</H1><P><BR />&nbsp;</P><H1 id="toc-hId-245332866">&nbsp;</H1><P>&nbsp;</P><H1 id="toc-hId-48819361">概要</H1><P><BR />&nbsp;<BR /><BR />SAP HANA Cloud の HANA データベースから SAP HANA Cloud, data lake リレーショナルエンジンにより大きなテーブルを移動するお客様が増えるにつれ、SAP HANA Cloud の HANA データベースから SAP HANA Cloud, data lake リレーショナルエンジンへのデータ移動の最速の方法について聞かれるようになりました。<BR /><BR />より正確にいうと、SAP HANA Cloud, data lake リレーショナルエンジン仮想テーブルに対してシンプルに HANA INSERT を実行するよりも高速な方法があるのか聞かれるようになりました。<BR /><BR />なぜ SAP HANA Cloud の HANA データベースから SAP HANA Cloud, data lake リレーショナルエンジンに大きなテーブルを移動するお客様がいるのか疑問に思う方もいるかもしれません。<BR /><BR />最もよくある利用ケースは、大きなデータベースの最初のマテリアライズあるいは古いデータをSAP HANA Cloud, data lake リレーショナルエンジンにアーカイブするためです。<BR /><BR />これらのお客様の大半は、通常 SAP HANA Smart Data Integration (SDI) を使用してこのマテリアライゼーションを行っており、これらのテーブルを最新の状態にキープするために SDI の Flowgraphs や SDI のリアルタイムレプリケーションを使用した <STRONG>Change Data Capture </STRONG>を同じインターフェースを使用して行っています。<BR /><BR />&nbsp;<BR /><BR /><STRONG>SAP HANA SDI </STRONG><STRONG>の詳細については以下のブログを参照してください</STRONG><STRONG>:</STRONG><BR /><BR />&nbsp;<BR /><BR /><STRONG>SAP HANA&nbsp;</STRONG><STRONG>データ戦略</STRONG><STRONG>:&nbsp;</STRONG><STRONG>リアルタイム </STRONG><STRONG>Change Data Capture&nbsp;</STRONG><STRONG>を含む高速データ投入(英語)</STRONG><BR /><BR /><A href="https://blogs.sap.com/2020/06/18/hana-data-strategy-data-ingestion-including-real-time-change-data-capture/" target="test_blank" rel="noopener noreferrer">https://blogs.sap.com/2020/06/18/hana-data-strategy-data-ingestion-including-real-time-change-data-capture/</A><BR /><BR /><STRONG>SAP HANA&nbsp;</STRONG><STRONG>データ戦略</STRONG><STRONG>:&nbsp;</STRONG><STRONG>高速データ投入</STRONG><STRONG>&nbsp;–&nbsp;</STRONG><STRONG>仮想化(英語)</STRONG><BR /><BR /><A href="https://blogs.sap.com/2020/03/09/hana-data-strategy-data-ingestion-virtualization/" target="test_blank" rel="noopener noreferrer">https://blogs.sap.com/2020/03/09/hana-data-strategy-data-ingestion-virtualization/</A><BR /><BR />&nbsp;<BR /><BR />ここで実験するデータ移動に関するシンプルな方法は以下の 3 種です:<BR /><BR /></P><UL><UL><LI>シンプルに SAP HANA Cloud, data lake リレーショナルエンジン仮想テーブルへの HANA INSERT</LI></UL></UL><P>&nbsp;</P><UL><UL><LI>HANA 仮想テーブルにアクセスし、シンプルに SAP HANA Cloud, data lake リレーショナルエンジンから data lake INSERT</LI></UL></UL><P>&nbsp;</P><UL><UL><LI>HANA エクスポートと data lake LOAD</LI></UL></UL><P><BR /><BR />&nbsp;<BR /><BR />こう質問する人もいるかもいれません:<BR /><BR />「なぜ SAP HANA Cloud, HANA データベース経由で行うのか?」<BR /><BR />「なぜ SAP HANA Cloud, data lake リレーショナルエンジンに直接データをロードしないのか?」<BR /><BR />&nbsp;<BR /><BR />繰り返しますが、これらのお客様はターゲットとして HANAオブジェクト(ローカルまたは仮想)を必要とする HANA Enterprise Information Management (EIM)ツールを使用しています。<BR /><BR />将来のブログでは、SAP IQ クライアントサイドロード、Data Services、Data Intelligence 経由の SAP HANA Cloud, data lake リレーショナルエンジンへの直接のデータロードについて説明したいと思います。<BR /><BR />SAP HANA Cloud, HANA データベースから SAP HANA Cloud, data lake リレーショナルエンジンへの最速のデータロード方法は、SAP HANA Cloud, data lake リレーショナルエンジンから、SAP HANA Cloud, HANA データベースの物理テーブルを指定するプロキシテーブルを作成するために「create existing local temporary table」を使用して HANA&nbsp; テーブルから SELECT で INSERT 文を実行する方法です。<BR />(詳細は以下のテーブル参照)<BR /><BR />&nbsp;</P><TABLE><TBODY><TR><TD width="156"><STRONG>方法</STRONG></TD><TD width="156"><STRONG>行</STRONG></TD><TD width="156"><STRONG>データサイズ</STRONG></TD><TD width="156"><STRONG>時間 (秒)</STRONG></TD></TR><TR><TD width="156">HANA Cloud, data lake/IQ INSERT..SELECT</TD><TD width="156">28,565,809</TD><TD width="156">3.3 GB</TD><TD width="156"><STRONG>52.86</STRONG></TD></TR><TR><TD width="156">*HANA Cloud, data lake/IQ<BR />LOAD<BR />Azure ファイルシステム</TD><TD width="156">28,565,809</TD><TD width="156">3.3 GB</TD><TD width="156">116 (1分56秒)</TD></TR><TR><TD width="156">*HANA Cloud, data lake/IQ<BR />LOAD<BR />Data Lake ファイルシステム</TD><TD width="156">28,565,809</TD><TD width="156">3.3 GB</TD><TD width="156">510 (8分30秒)</TD></TR><TR><TD width="156">HANA INSERT..SELECT</TD><TD width="156">28,565,809</TD><TD width="156">3.3 GB</TD><TD width="156">1277 (21分7秒)</TD></TR></TBODY></TABLE><P><BR />&nbsp;<BR /><BR />* HANA データベースからファイルシステムへのデータエクスポート時間は含めていません。<BR /><BR />28,565,809 行、約 3.3 GB の TPC-D ORDERS テーブルを使用し、SAP HANA Cloud, data lake リレーショナルエンジンの小さめの設定でロードしています。 <STRONG>&nbsp;</STRONG><BR /><BR />&nbsp;</P><H2 id="toc-hId--18611425">&nbsp;</H2><P>&nbsp;</P><H2 id="toc-hId--215124930">以下の SAP HANA Cloud 設定を使用してテストしました</H2><P><BR />&nbsp;<BR /><BR />SAP HANA Cloud, HANA データベース:60 GB / 200 GB、4 vCPU<BR /><BR />SAP HANA Cloud, data lake リレーショナルエンジン:16 TB、ワーカー 8 vCPU /コーディネーター 8 vCPU<BR /><BR />SAP HANA Cloud, data lake リレーショナルエンジンでは、より多くの並列処理を実行するには(特により大きなテーブルの場合)より多くの vCPU 数を設定します。<BR /><BR />より多くの TB を SAP HANA Cloud, data lake リレーショナルエンジンに追加することで、より大きなディスク I/O スループットを得ることができます。</P><H1 id="toc-hId--540721154">&nbsp;</H1><P><BR />&nbsp;</P><H1 id="toc-hId--737234659">テストで使用した詳細設定と構文</H1><P><BR />&nbsp;<BR /><BR />SAP HANA Cockpit をスタートして SAP HANA Cloud を管理します。<BR /><BR />&nbsp;<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/03/HANACockpitManager.png" border="0" /><BR /><BR />&nbsp;<BR /><BR />SAP HANA Cloud, data lake リレーショナルエンジンから「Open in SAP HANA Database Explorer」を選択します。<BR /><BR />もしこれが初回であれば、SAP HANA Cloud, data lake リレーショナルエンジンの ADMIN パスワードを求められます。<BR /><BR />&nbsp;<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/03/HANACockpitManager2.png" border="0" /><BR /><BR />&nbsp;<BR /><BR />SQL コマンドを入力し、クリックして実行します。<BR /><BR />&nbsp;<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2022/03/HANADBExplorer.png" border="0" /><BR /><BR />&nbsp;</P><H2 id="toc-hId--804665445">&nbsp;</H2><P>&nbsp;</P><H2 id="toc-hId--653924593">以下を作成するための SAP HANA Cloud, data lake コマンド</H2><P><BR />&nbsp;<BR /><BR /></P><OL><OL><LI>SAP HANA Cloud, data lake リレーショナルエンジンから、SAP HANA Cloud HANA データベースへ接続しているサーバー</LI></OL></OL><P>&nbsp;</P><OL><OL><LI>データをロードして作成するためのローカルの SAP HANA Cloud, data lake リレーショナルエンジンテーブル</LI></OL></OL><P>&nbsp;</P><OL><OL><LI>SAP HANA Cloud インスタンスのテーブルを指定するローカルのテンポラリープロキシーテーブル</LI></OL></OL><P><BR /><BR />&nbsp;<BR /><BR /><STRONG>CREATE SERVER</STRONG><BR /><BR />–DROP SERVER DRHHC2_HDB<BR /><BR />CREATE SERVER DRHHC2_HDB CLASS ‘HANAODBC’ USING ‘Driver=libodbcHDB.so;ConnectTimeout=60000;ServerNode=xyxy.hana.prod-us10.hanacloud.ondemand.com:443;ENCRYPT=TRUE;ssltruststore=xyxy.hana.prod-us10.hanacloud.ondemand.com;ssltrustcert=Yes;UID=DBADMIN;PWD=xyxyx;’<BR /><BR />&nbsp;<BR /><BR />&nbsp;<BR /><BR /><STRONG>CREATE TARGET TABLE</STRONG><BR /><BR />CREATE&nbsp; TABLE REGIONPULL (<BR /><BR />R_REGIONKEY&nbsp;&nbsp; bigint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />R_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar(25)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />R_COMMENT&nbsp;&nbsp;&nbsp; varchar(152)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />primary key (R_REGIONKEY)<BR /><BR />);<BR /><BR />&nbsp;<BR /><BR /><STRONG>CREATE local temporary PROXY</STRONG><BR /><BR />create existing local temporary table REGION_PROXY (<BR /><BR />R_REGIONKEY&nbsp;&nbsp; bigint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />R_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar(25)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />R_COMMENT&nbsp;&nbsp;&nbsp; varchar(152)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />primary key (R_REGIONKEY)<BR /><BR />)<BR /><BR />at ‘DRHHC2_HDB..TPCD.REGION’;<BR /><BR />&nbsp;<BR /><BR /><STRONG>INSERT DATA</STRONG><BR /><BR />INSERT into REGIONPULL SELECT * from REGION_PROXY;<BR /><BR />Commit;<BR /><BR />–1.9s</P><H2 id="toc-hId--850438098">&nbsp;</H2><P><BR />&nbsp;</P><H2 id="toc-hId--1046951603">ORDERS テーブルテストコマンド</H2><P><BR />&nbsp;<BR /><BR />–DROP TABLE ORDERSPULL;<BR /><BR />create table ORDERSPULL (<BR /><BR />O_ORDERKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_CUSTKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_ORDERSTATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_TOTALPRICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_ORDERDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_ORDERPRIORITY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(15)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_CLERK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(15)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_SHIPPRIORITY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_COMMENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(79) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not null,<BR /><BR />primary key (O_ORDERKEY)<BR /><BR />);<BR /><BR />&nbsp;<BR /><BR />create existing local temporary table ORDERS_PROXY (<BR /><BR />O_ORDERKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_CUSTKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_ORDERSTATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;not null,<BR /><BR />O_TOTALPRICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_ORDERDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_ORDERPRIORITY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(15)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_CLERK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(15)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_SHIPPRIORITY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />O_COMMENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(79)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null<BR /><BR />)<BR /><BR />at ‘DRHHC2_HDB..TPCD.ORDERS’;<BR /><BR />&nbsp;<BR /><BR />INSERT into ORDERSPULL SELECT * from ORDERS_PROXY;<BR /><BR />Commit;<BR /><BR />–59s<BR /><BR />–52.86 s<BR /><BR />&nbsp;<BR /><BR />SELECT COUNT(*) FROM ORDERSPULL;<BR /><BR />–28,565,809</P><H2 id="toc-hId--1243465108">&nbsp;</H2><P><BR />&nbsp;</P><H2 id="toc-hId--1439978613">LINEITEM テーブルテストコマンド</H2><P><BR />&nbsp;<BR /><BR />create table LINEITEM (<BR /><BR />L_ORDERKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_PARTKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SUPPKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_LINENUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not null,<BR /><BR />L_QUANTITY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_EXTENDEDPRICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_DISCOUNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_TAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_RETURNFLAG&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VARCHAR(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_LINESTATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SHIPDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_COMMITDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_RECEIPTDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SHIPINSTRUCT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(25)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SHIPMODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_COMMENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(44)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />primary key (L_ORDERKEY,L_LINENUMBER)<BR /><BR />);<BR /><BR />&nbsp;<BR /><BR />create existing local temporary table LINEITEM_PROXY (<BR /><BR />L_ORDERKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_PARTKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SUPPKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_LINENUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_QUANTITY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_EXTENDEDPRICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_DISCOUNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_TAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DECIMAL(12,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_RETURNFLAG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_LINESTATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SHIPDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_COMMITDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_RECEIPTDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SHIPINSTRUCT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(25)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_SHIPMODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(10)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR /><BR />L_COMMENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(44)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null<BR /><BR />)<BR /><BR />at ‘DRHHC2_HDB..TPCD.LINEITEM’;<BR /><BR />&nbsp;<BR /><BR />INSERT into LINEITEM SELECT * from LINEITEM_PROXY;<BR /><BR />Commit;<BR /><BR />— Rows affected:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 114,129,863<BR /><BR />— Client elapsed time: 4 m 52 s</P><H1 id="toc-hId--1343089111">&nbsp;</H1><P>&nbsp;</P><H1 id="toc-hId--1539602616"><STRONG><BR />まとめ</STRONG></H1><P><BR />&nbsp;<BR /><BR />SAP HANA Cloud, HANA データベースから SAP HANA Cloud, data lake リレーショナルエンジンへのデータの最速のロード方法は、SAP HANA Cloud, data lake リレーショナルエンジンから、SAP HANA Cloud, HANA データベースの物理テーブルを指定するプロキシテーブルを作成するために「create existing local temporary table」を使用してHANA テーブルから SELECT で INSERT 文を実行する方法です。<BR /><BR />これは、このブログで紹介しているコマンドを使用することで、とても容易に行うことができます。<BR /><BR />あるいは、これらのコマンドを生成するプロシージャーを作成すると、さらに容易になります。(下の Daniel のブログを参照してください。)</P><H2 id="toc-hId--2029519128">&nbsp;</H2><P>&nbsp;</P><H2 id="toc-hId-2068934663">&nbsp;</H2><P>&nbsp;</P><H2 id="toc-hId-1872421158">&nbsp;</H2><P><BR />&nbsp;</P><H2 id="toc-hId-1844091344">以下も参考にしてください</H2><P><BR />Jason Hinsperger の「SAP HANA Cloud, data lakeへのデータロード」のブログでは、SAP HANA Cloud, data lake リレーショナルエンジンの vCPU 数やデータベースサイズを増やすとロードのパフォーマンスにどのような影響があるか説明しています。<BR /><BR /><A href="https://blogs.sap.com/?p=1866471" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/?p=1866471</A><BR /><BR />&nbsp;<BR /><BR />Daniel Utvich の「SAP HANA Cloud, HANA データベースから SAP HANA Cloud, data lake へのデータの高速移動」のブログでは、システムテーブル情報をベースにした SQL コードを生成するプロシージャーの例を紹介しています。<BR /><BR /><A href="https://blogs.sap.com/?p=1867099" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/?p=1867099</A><BR /><BR />&nbsp;</P><H3 id="toc-hId-1354174832">&nbsp;</H3><P>&nbsp;</P><H3 id="toc-hId-1157661327"><STRONG>SAP HANA データ戦略ブログインデックス</STRONG></H3><P><BR /><A href="https://blogs.sap.com/2019/10/14/sap-hana-data-strategy/" target="_blank" rel="noopener noreferrer">SAP HANA Data Strategy</A><BR /><BR /></P><UL><UL><LI><A href="https://blogs.sap.com/2019/11/14/sap-hana-data-strategy-hana-data-modeling-a-detailed-overview/" target="_blank" rel="noopener noreferrer">SAP HANA Data Strategy: HANA Data Modeling a Detailed&nbsp;</A><A href="https://blogs.sap.com/2019/11/14/sap-hana-data-strategy-hana-data-modeling-a-detailed-overview/" target="_blank" rel="noopener noreferrer">Overview</A></LI></UL></UL><P>&nbsp;</P><UL><UL><LI><A href="https://blogs.sap.com/2020/06/18/hana-data-strategy-data-ingestion-including-real-time-change-data-capture/?update=updated" target="_blank" rel="noopener noreferrer">HANA Data Strategy: Data Ingestion including Real-Time Change Data Capture</A><BR /><BR /><UL><UL><LI><A href="https://blogs.sap.com/2020/03/16/access-sap-erp-data-from-sap-hana-through-sdi-abap-adapter-2/" target="_blank" rel="noopener noreferrer">Access&nbsp;SAP ERP data from SAP HANA through SDI ABAP&nbsp;Adapter by&nbsp;Maxime Simon</A></LI></UL></UL><BR /><BR /></LI></UL></UL><P>&nbsp;</P><UL><UL><LI><A href="https://blogs.sap.com/2020/03/09/hana-data-strategy-data-ingestion-virtualization/" target="_blank" rel="noopener noreferrer">HANA Data Strategy: Data Ingestion – Virtualization</A></LI></UL></UL><P>&nbsp;</P><UL><UL><LI><A href="https://blogs.sap.com/2020/02/12/hana-data-strategy-hana-data-tiering/" target="_blank" rel="noopener noreferrer">HANA Data Strategy: HANA Data Tiering</A><BR /><BR /><UL><UL><LI><A href="https://blogs.sap.com/2019/06/19/store-more-with-sps04/" target="_blank" rel="noopener noreferrer">Store More with&nbsp;</A><A href="https://blogs.sap.com/2019/06/19/store-more-with-sps04/" target="_blank" rel="noopener noreferrer">SPS04 – NSE BLOG</A></LI></UL></UL><BR /><BR /></LI></UL></UL><P><BR /><BR />&nbsp;<BR /><BR /></P><HR /><P><BR /><BR />オリジナルのブログはここまでです。<BR /><BR /></P><HR /><P><BR /><BR />&nbsp;</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/data_pyramid_1-4.jpg" border="0" /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/data_pyramid_2-4.jpg" border="0" /></P><P><BR />&nbsp;</P> 2023-12-19T07:47:55+01:00 https://community.sap.com/t5/technology-blogs-by-members/using-data-lake-and-sql-to-create-custom-reporting-models/ba-p/13579874 Using Data lake and SQL to create custom reporting models 2023-12-20T10:29:19+01:00 Roney_Mathew https://community.sap.com/t5/user/viewprofilepage/user-id/147426 <P><STRONG>Overview:</STRONG> Through a series of blogs, would like to share scripts that utilize data lakes built for SAP tables, to create reporting models that represent certain sections of SAP screens/transactions or areas of analysis. Hopefully, these scripts serve as an accelerator to cater multiple use cases.For this first script we'll look at building User Status using JCDS and JEST.</P><P>&nbsp;</P><P><STRONG><U>Background:</U></STRONG> &nbsp;Most structured reporting tools (eg:BW) or ETL processes don’t bring in all fields available in source systems, these are deployed using a predefined datamodel (dimensions/measures) that collects fields from different tables and &nbsp;limit what’s initially available for reporting, restricting the ability of Analysts to explore additional fields.</P><P>&nbsp;</P><P>Eg: Financial reporting models built using ACDOCA or BSEG or FAGLFLEXA tables- Irrespective of the approach(CDS views or BW models), these don’t bring all fields from the source as they mostly focus on meeting initial requirements from primary stakeholders.</P><P>&nbsp;</P><P>&nbsp;Additional fields maybe available in SAP transaction systems and to make them available for reporting, multiple cycles of enhancements are implemented, reflecting a dependency on different support teams and time involved to meet these requirements.</P><P>&nbsp;</P><P><STRONG><U>Solution </U></STRONG>With a data lake that replicates tables from SAP, Analysts working with functional resources can build models that meet their specific needs. If replications are managed through SAP SLT, then it enables near realtime (possible delay of a few seconds) reporting. Review must be done with functional consultants to ensure that tables being replicated dont have confidential content.</P><P>&nbsp;</P><P>As part of this blog series, we shall see some models that reflect SAP transactions or commonly used reporting metrics.</P><P>&nbsp;</P><P><STRONG><U>Factors that are not addressed in this blog but must be considered:</U></STRONG></P><P><BR /><BR /><BR /></P><OL><OL><LI>Organization of reporting models and data lake tables, if not using similar reference as SAP Application components. This becomes Important for managing confidentiality and ensuring personal information of customers, employees and vendors is only available to those that need it as part of their business roles.</LI></OL></OL><P>&nbsp;</P><OL><OL><LI>Security models needed for<BR /><BR /><OL><OL><LI>Functional areas of reporting (multiple tables grouped in an area of reporting)</LI></OL></OL><BR /><OL><OL><LI>Row based access</LI></OL></OL><BR /><OL><OL><LI>Any additional configuration needed to secure fields in tables</LI></OL></OL><BR /><BR /></LI></OL></OL><P><BR /><BR />Here's the first script:<BR /><BR /></P><OL><OL><LI><STRONG><U>Script for Plant maintenance object status</U></STRONG></LI></OL></OL><P><BR /><BR /><U>Need:</U> Near real time availability of object status’ for Plant maintenance, eg: an emergency order created for addressing critical equipment failure, the status and progress of investigation needs to be communicated through the manufacturing channels for them to manage bottlnecks in production.<BR /><BR /><U>Solution: </U>Below layout provides a simplified overview of how different tables are joined together with their respective fields.<BR /><BR />&nbsp;<BR /><BR /><STRONG>Tables used:</STRONG><BR /><BR />JEST-Individual Object Status<BR /><BR />JCDS-Change Documents for System/User Statuses (Table JEST)<BR /><BR />JSTO- Status object information<BR /><BR />TJ02-System status<BR /><BR />TJ02T - System status texts<BR /><BR />TJ04- Status control for object type<BR /><BR />TJ30- User Status<BR /><BR />TJ30T- Texts for User Status</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/Object-status-table-overview-1.jpg" border="0" /></P><P>&nbsp;</P><P class="">Object status tables relationship overview</P><P><BR />&nbsp;<BR /><BR />&nbsp;<BR /><BR />Script below provides active status’ for all Plant maintenance objects . To view all instances of status changes remove the JEST.INACT is NULL clause/restriction. Each table and the filter condition starts with a comment(begins with --) to show what it represents. May have to tweak formatting based on tool being used, especially the comments section.<BR /><BR />&nbsp;</P><BLOCKQUOTE><BR /><PRE>SELECT JEST.OBJNR AS OBJECT_NUMBER, JSTO.OBTYP AS OBJECT_CATEGORY, SUBSTR(JEST.OBJNR, 3) AS OBJECT, JEST.STAT AS OBJECT_STATUS, (CASE WHEN LEFT(JEST.STAT, 1) = ‘I’ THEN ‘SYSTEM’ ELSE ‘USER’ END) ASSTATUS_TYPE, (CASE WHEN LEFT(JEST.STAT, 1) = ‘I’ THEN TJ02T.TXT04 ELSE TJ30T.TXT04 END) AS STATUS_SHORT_TEXT, (CASE WHEN LEFT(JEST.STAT, 1) = ‘I’ THEN TJ02T.TXT30 ELSE TJ30T.TXT30 END) AS STATUS_LONG_TEXT, JSTO.STSMA AS STATUS_PROFILE, JCDS.USNAM AS STATUS_CHANGED_BY, JCDS.UDATE AS STATUS_CHANGED_DATE, JCDS.UTIME AS STATUS_CHANGED_TIME, JCDS.CHIND AS STATUS_CHANGED_TYPE, TJ04.INIST AS SYSTEM_STATUS_INITIAL_STATUS_FLAG, TJ04.STATP AS SYSTEM_STATUS_DISPLAY_PRIORITY, TJ04.LINEP AS SYSTEM_STATUS_LINE_POSITION, TJ02.NODIS AS SYSTEM_STATUS_NO_DISPLAY_INDICATOR, TJ02.SETONLY AS SYSTEM_STATUS_SET_ONLY_INDICATOR, TJ30.STONR AS USER_STATUS_WITH_NUMBER, TJ30.INIST AS USER_STATUS_INITIAL_STATUS_FLAG_INDICATOR, TJ30.STATP AS USER_STATUS_DISPLAY_PRIORITY, TJ30.LINEP AS USER_STATUS_LINE_POSITION, CASE WHEN TJ30.LINEP = ’01’ THEN TJ30T.TXT04 END ASPOSITION1_USER_STATUS FROM JEST --Individual object status INNER JOIN JCDS -- Change Documents for System/User Statuses (Table JEST) ON JEST.OBJNR = JCDS.OBJNR AND JEST.STAT = JCDS.STAT AND JEST.CHGNR = JCDS.CHGNR LEFT JOIN JSTO -- Status profile information for objects ON JEST.OBJNR = JSTO.OBJNR LEFT JOIN TJ02T --System status texts ON JEST.STAT = TJ02T.ISTAT AND TJ02T.SPRAS = ‘E’ LEFT JOIN TJ04 -- System status control config table 2 ON JEST.STAT = TJ04.ISTAT and TJ04.OBTYP = JSTO.OBTYP LEFT JOIN TJ30T -- User status texts ON JSTO.STSMA = TJ30T.STSMA AND JEST.STAT = TJ30T.ESTAT AND TJ30T.SPRAS = ‘E’ LEFT JOIN TJ02 ”System status config table 1 ON JEST.STAT = TJ02.ISTAT LEFT JOIN TJ30 -- User status config table 1 ON JSTO.STSMA = TJ30.STSMA AND JEST.STAT = TJ30.ESTAT WHERE JEST.INACT is NULL -- remove this to see when a status was set inactive or to get timelines for all status</PRE></BLOCKQUOTE><P><BR />&nbsp;<BR /><BR /><STRONG>Conclusion : </STRONG>Using the above code we can active status' and their respective times for all operational objects that have been configured for status tracking. Similar approach can be used to get status' for CRM using table CRM_JEST and CRM_JCDS. Remove the inactive filter to get status' that are currently not active (depending on the values are mapped in data lake i.e default value of blanks as NULLs, NULL may need to be replaced with '')<BR /><BR />&nbsp;<BR /><BR /><STRONG>Possible variations based on need</STRONG>:<BR /><BR /></P><OL><OL><LI>To plot timeline of how the operational object moved between status' use JCDS</LI></OL></OL><P>&nbsp;</P><OL><OL><LI>Restrict to certain Status profile(s) in table JSTO when requirement is to focus on certain types of objects or group</LI></OL></OL><P>&nbsp;</P><OL><OL><LI>Restrict using change date and time if the need is to focus of recent changes within the hour or day(s)</LI></OL></OL><P><BR /><BR />&nbsp;<BR /><BR />Next blog will look at details of combining details of orders and related operational tasks</P> 2023-12-20T10:29:19+01:00 https://community.sap.com/t5/technology-blogs-by-sap/empowering-businesses-with-new-insights-the-google-cloud-and-sap-analytics/ba-p/13580348 Empowering Businesses with New Insights: The Google Cloud and SAP Analytics Partnership 2023-12-28T12:35:19+01:00 Thisgaard https://community.sap.com/t5/user/viewprofilepage/user-id/4350 A year ago, the tech giants Google Cloud and SAP embarked on a journey to revolutionize data analytics for businesses. Their goal: to bring together&nbsp;SAP systems and data with Google’s data cloud, offering customers better insights for decision making and innovation. The new SAP Datasphere Replication Flow connector for Google BigQuery is now<A href="https://blogs.sap.com/2023/11/16/replication-flows-sap-datasphere-and-google-big-query/" target="_blank" rel="noopener noreferrer"> available</A>.<BR /> <BR /> From the outset, customers have been excited about the potential of this partnership: integrating SAP's robust data models and real-time processes with Google BigQuery's comprehensive real-time data streams, including search engine data, weather data, marketing data, and customer event data, to inspire new and better ways to do business.<BR /> <BR /> Prior to this collaboration, businesses found it challenging to merge data models from either side due to cost, effort, and time. This partnership aims to eliminate these hurdles, providing real-time data streams that adjust dynamically to changes from Google Cloud and SAP. Haridas Nair, the Head of Cross Product Management for Database and Analytics at SAP, stated, "Customers using SAP Business Technology Platform can now extend the reach of curated and modeled SAP business data for downstream consumption with SAP Datasphere Replication Flow. The integration with BigQuery now enables customers to combine SAP business data with Google BigQuery data. This enables new use cases that can unleash significant business value."<BR /> <BR /> For example, while enterprises rely on SAP S/4HANA for their financial planning, reporting, and budgeting there are many that also have finance data coming in other systems. Join ventures, new acquisitions or decentralized business models are common cases where finance data will reside in non-SAP S/4HANA systems. Early adopters of such companies are leveraging the Google Cloud and the SAP Datasphere Replication Flow connector to unify accounting data insights into SAP Datasphere to get a single financial dashboard across all their financial sources and thereby enable secure, self-service access to reusable data models, and streamline financial reporting. The result is enhanced analytics that enable new market correlations to transpire, as well as reporting efficiency and reduced data management costs. As such finance and operations experts can receive new insights that improve their business planning.<BR /> <BR /> The other common use case relates to Consumer Products and Retail companies. A prime example is a North American consumer products company selling through retailers as well as their online platform. As many other companies in this space, they're investing in brand loyalty and scaling their product portfolio to target different customer segments. The company strives to corelate online customer trends with their retail channel sales using demographics and other consumer data.<BR /> <BR /> Their business goals involve improving channel inventory turns, trade promotion management, shelf-availability, SKU margins, and overall understanding of customer buying behavior. Simultaneously, they aim to reduce the cost, effort, and time for accessing SAP data and enable richer SAP ERP data in real-time.<BR /> <BR /> To achieve these goals, they have connected Google Cloud and SAP data to gain better insight into their retail channels and to improve their demand forecasting and supply chain algorithms. The more real-time the connectivity between their SAP data and Google BigQuery data, the more confident they'll be in the predictive algorithms they adopt for their supply chain.<BR /> <BR /> But this is just the beginning. The Google Cloud and SAP Analytics partnership opens the door to a wide range of strategic customer and supply chain programs that leverage data for advanced predictive demand models. Early examples of customer innovations include true customer 360 insight, improved sales performance, yield-driven pricing, new product introductions, unifying external accounting with SAP, manufacturing automation, and operationalizing sustainability.<BR /> <BR /> Both of the Google Cloud and SAP development organizations are excited to see that their work is making a difference. Future releases plan to include more advanced features for managing enterprise scale federation, replication and data catalogs between their respective data platforms. Honza Fedak, Director of BigQuery Engineering at Google Cloud stated, "The combination of Google Cloud's data and AI expertise and SAP's deep understanding of business data is a powerful force that can help businesses unlock the full potential of their data."<BR /> <BR /> As more enterprises utilize this partnership, we are confident that the Google Cloud and SAP analytics partnership can provide better insights, enable better decisions, and foster innovation. This partnership is a significant step towards creating more Intelligent Enterprises, and we hope your enterprise will be one of them. 2023-12-28T12:35:19+01:00