tag:blogger.com,1999:blog-25964946795699145502024-03-27T19:11:35.535+05:30DB Exam StudySokitahttp://www.blogger.com/profile/06906852265585212524noreply@blogger.comBlogger679125tag:blogger.com,1999:blog-2596494679569914550.post-90029659829793474682024-03-27T19:10:00.003+05:302024-03-27T19:10:49.966+05:30Understanding Database Management Systems (DBMS)<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWUdaxxkUcHBmQKfI4JfhN6ObU4BuADI9of_jMJkddlInEF0ZRWhTjREnXepOopAgnHShd3nf6ykfKGJVoJ0q5dy8Or0ayX7_kX9yOLNIpBaNsytb9Z242v6jk9zZXB6EApuWWhz9iG-cts2QDO6Q7ZTnfCh60NrvgMMEJzlD2bLjmjuV9oOYtPub3ack/s749/DBMS.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Understanding Database Management Systems (DBMS)" border="0" data-original-height="431" data-original-width="749" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWUdaxxkUcHBmQKfI4JfhN6ObU4BuADI9of_jMJkddlInEF0ZRWhTjREnXepOopAgnHShd3nf6ykfKGJVoJ0q5dy8Or0ayX7_kX9yOLNIpBaNsytb9Z242v6jk9zZXB6EApuWWhz9iG-cts2QDO6Q7ZTnfCh60NrvgMMEJzlD2bLjmjuV9oOYtPub3ack/s16000/DBMS.png" title="Understanding Database Management Systems (DBMS)" /></a></div><div style="text-align: center;"><br /></div><div>In the realm of digital infrastructure, the term Database Management System (DBMS) holds immense significance. A DBMS serves as a cornerstone for organizing and managing data efficiently within an organization. Let's delve into the intricacies of what constitutes a DBMS and its pivotal role in modern-day information management.</div><div><br /></div><h3 style="text-align: left;"><b>What is a Database Management System?</b></h3><div><br /></div><div>A Database Management System (DBMS) is a software suite designed to facilitate the storage, retrieval, and manipulation of data in a structured format. It acts as an intermediary between users and databases, providing an interface for users to interact with the data while ensuring its integrity, security, and accessibility.</div><div><br /></div><div><b>Components of a DBMS</b></div><div><br /></div><div>A DBMS comprises several key components, each playing a crucial role in its functionality:</div><div><br /></div><div><b>1. Data Definition Language (DDL)</b></div><div><br /></div><div>The DDL component of a DBMS enables users to define the structure of the database, including tables, fields, and relationships. It allows for the creation, modification, and deletion of database objects, ensuring data integrity and consistency.</div><div><br /></div><div><b>2. Data Manipulation Language (DML)</b></div><div><br /></div><div>The DML component facilitates the manipulation of data within the database, allowing users to insert, update, delete, and retrieve records. It provides the necessary commands and operations to interact with the data stored in the database.</div><div><br /></div><div><b>3. Data Query Language (DQL)</b></div><div><br /></div><div>DQL enables users to retrieve specific information from the database using queries. It allows for the extraction of data based on predefined criteria, enabling users to retrieve relevant information efficiently.</div><div><br /></div><div><b>4. Data Control Language (DCL)</b></div><div><br /></div><div>The DCL component governs the access and permissions associated with the database. It regulates user access rights, security privileges, and data integrity constraints, ensuring that only authorized users can manipulate the data as per defined policies.</div><div><br /></div><h3 style="text-align: left;"><b>Types of Database Management Systems</b></h3><div><br /></div><div>DBMSs can be categorized into various types based on their underlying architecture and functionality. Some common types include:</div><div><br /></div><div><b>1. Relational DBMS (RDBMS)</b></div><div><br /></div><div>RDBMS organizes data into tables with rows and columns, establishing relationships between them. It employs Structured Query Language (SQL) for data manipulation and retrieval, offering a robust and standardized approach to data management.</div><div><br /></div><div><b>2. NoSQL DBMS</b></div><div><br /></div><div>NoSQL databases diverge from the traditional relational model, offering flexible schemas and scalable architectures. They are well-suited for handling unstructured or semi-structured data types and can accommodate high volumes of data with distributed computing capabilities.</div><div><br /></div><div><b>3. Object-Oriented DBMS (OODBMS)</b></div><div><br /></div><div>OODBMS stores data as objects, encapsulating both data and methods within a single entity. It provides support for complex data structures and inheritance relationships, making it suitable for object-oriented programming paradigms.</div><div><br /></div><div><b>4. Graph DBMS</b></div><div><br /></div><div>Graph databases represent data as nodes, edges, and properties, facilitating the storage and traversal of interconnected data structures. They excel in modeling complex relationships and are widely used in applications involving social networks, recommendation systems, and network analysis.</div><div><br /></div><h3 style="text-align: left;"><b>Importance of DBMS in Business Operations</b></h3><div><br /></div><div>The adoption of a robust DBMS offers several benefits for organizations across various industries:</div><div><br /></div><div><ul style="text-align: left;"><li><b>Data Centralization</b>: A DBMS centralizes data storage, enabling organizations to maintain a single source of truth for their information assets.</li><li><b>Data Consistency</b>: DBMS ensures data consistency by enforcing integrity constraints and validation rules, thereby minimizing the risk of errors and inconsistencies.</li><li><b>Data Security:</b> DBMS implements access controls and encryption mechanisms to safeguard sensitive data from unauthorized access and cyber threats.</li><li><b>Scalability</b>: DBMS offers scalability features to accommodate growing data volumes and user demands, ensuring optimal performance and resource utilization.</li><li><b>Decision Support</b>: DBMS provides tools and utilities for data analysis, reporting, and visualization, empowering decision-makers with actionable insights derived from data-driven analysis.</li></ul></div><div><b><br /></b></div><div><b>Conclusion</b></div><div><br /></div><div>In essence, a Database Management System (DBMS) serves as a foundational pillar for efficient data management, storage, and retrieval within organizations. By leveraging the capabilities of a robust DBMS, businesses can streamline their operations, enhance data integrity, and unlock valuable insights to drive informed decision-making.</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-13295623911953341332024-03-22T11:06:00.000+05:302024-03-22T11:06:02.369+05:30Unveiling the Power of Oracle Database 23c: Revolutionizing Data Management<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih1Abj4Mm0MURXCTn_lOnmAdhzNV6za17FswWEdJQBMjMSr3nk5eZLko0zeD4iWn7zffjsAQIWMfaF_w46kvzUGmmNu2ed9RpKt-qC5Y6u4Knsd8t9Aw5Y7pTKWWGdM7qNH4p0cv8Wnsqseev1z0IE7IcsXhPsZR7eC86B2rgJD2e4QETrV4UviR_AwIY/s750/Oracle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Unveiling the Power of Oracle Database 23c: Revolutionizing Data Management" border="0" data-original-height="421" data-original-width="750" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih1Abj4Mm0MURXCTn_lOnmAdhzNV6za17FswWEdJQBMjMSr3nk5eZLko0zeD4iWn7zffjsAQIWMfaF_w46kvzUGmmNu2ed9RpKt-qC5Y6u4Knsd8t9Aw5Y7pTKWWGdM7qNH4p0cv8Wnsqseev1z0IE7IcsXhPsZR7eC86B2rgJD2e4QETrV4UviR_AwIY/s16000/Oracle.png" title="Unveiling the Power of Oracle Database 23c: Revolutionizing Data Management" /></a></div><div style="text-align: center;"><br /></div><div>In the ever-evolving landscape of <b><a href="https://dbexamstudy.blogspot.com/p/1z0-1118-23-oracle-cloud-fusion.html">data management</a></b>, Oracle has yet again set a new standard with the introduction of Oracle Database 23c. This groundbreaking release brings forth a plethora of features and enhancements designed to streamline operations, enhance security, and elevate performance to unprecedented levels. In this comprehensive guide, we delve into the intricate details of Oracle Database 23c, exploring its key features, benefits, and the transformative impact it can have on your organization's data infrastructure.</div><div><br /></div><h3 style="text-align: left;"><b>Enhanced Security Measures</b></h3><div><br /></div><div>Security is paramount in today's digital age, and Oracle Database 23c delivers on this front with an array of enhanced security measures. With features such as Data Safe and Transparent Data Encryption, organizations can fortify their data against unauthorized access and cyber threats. Additionally, Oracle Label Security provides granular control over data access, allowing organizations to enforce fine-grained security policies based on user roles and data classifications.</div><div><br /></div><h3 style="text-align: left;"><b>Advanced Machine Learning Capabilities</b></h3><div><br /></div><div>Harnessing the power of machine learning, Oracle Database 23c empowers organizations to unlock valuable insights from their data like never before. Through features such as AutoML, organizations can automate the process of building and deploying machine learning models, enabling data-driven decision-making at scale. Furthermore, Adaptive Query Optimization leverages machine learning algorithms to optimize query performance, ensuring efficient utilization of resources and maximizing throughput.</div><div><br /></div><h3 style="text-align: left;"><b>Seamless Scalability and Performance</b></h3><div><br /></div><div>Scalability and performance are cornerstones of any robust data management solution, and Oracle Database 23c excels in both areas. With support for multitenant architecture and in-memory processing, organizations can effortlessly scale their databases to accommodate growing workloads while maintaining optimal performance levels. Moreover, Automatic Indexing leverages machine learning algorithms to automatically create and manage indexes, further enhancing query performance and reducing administrative overhead.</div><div><br /></div><h3 style="text-align: left;"><b>Cloud-Native Innovations</b></h3><div><br /></div><div>As organizations increasingly embrace cloud-native technologies, Oracle remains at the forefront with Oracle Database 23c's cloud-native innovations. With support for Oracle Autonomous Database and Oracle Cloud Infrastructure, organizations can seamlessly migrate their on-premises databases to the cloud, unlocking greater agility, scalability, and cost-efficiency. Additionally, Oracle Exadata Cloud@Customer brings the power of Exadata to the cloud, allowing organizations to leverage the industry's leading database platform without the need for upfront infrastructure investments.</div><div><br /></div><h3 style="text-align: left;"><b>Enhanced Data Integration and Management</b></h3><div><br /></div><div>Efficient data integration and management are essential for driving actionable insights and maximizing the value of data assets. Oracle Database 23c offers a comprehensive suite of tools and features for data integration, data warehousing, and real-time analytics, empowering organizations to extract, transform, and load data from disparate sources with ease. With Oracle Data Integrator and Oracle GoldenGate, organizations can streamline data movement and replication, ensuring data consistency and integrity across the entire ecosystem.</div><div><br /></div><div><b><span style="font-size: large;">Future-Proof Your Data Infrastructure with Oracle Database 23c</span></b></div><div><br /></div><div>In conclusion, Oracle Database 23c represents a paradigm shift in the realm of data management, combining unparalleled security, advanced machine learning capabilities, seamless scalability, and cloud-native innovations to deliver a comprehensive solution for modern organizations. Whether you're looking to enhance security, boost performance, or embrace cloud-native technologies, Oracle Database 23c has you covered. Embrace the future of data management with Oracle Database 23c and stay ahead of the curve in today's data-driven world.</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-63945619887700831032024-03-20T16:49:00.000+05:302024-03-20T16:49:02.724+05:30How to help AI models generate better natural language queries<div>Using natural language to query your data is an easy way to answer business questions. One question I’m often asked is, “how can this work on my data? Have you seen my table and column names? The names are meaningless.” Fear not! It is possible when you’re using Autonomous Database.</div><div><br /></div><div>There is no magic. If your table and column names aren’t descriptive, you can help the large language model (LLM) interpret the meaning of tables and columns by using a built-in database feature called “comments”. Comments are descriptions or notes about a table or column’s purpose or usage. And, the better the comment, the more likely the LLM will know how to use that table or column to generate a the right query.</div><div><br /></div><h3 style="text-align: left;"><b>Adding Comments to your tables and columns</b></h3><div><br /></div><div>Let’s take an example. My database has 3 tables. The table names and columns are meaningless:</div><div><br /></div>
<table border="1" style="width: 100%;">
<tbody>
<tr>
<td style="vertical-align: top;"><b>TABLE1</b><br />CREATE TABLE table1 (<br /> c1 NUMBER,<br /> c2 VARCHAR2(200),<br /> c3 NUMBER</td>
<td style="vertical-align: top;"><b>TABLE2<br /></b>CREATE TABLE table2 (<br /> c1 TIMESTAMP,<br /> c2 NUMBER,<br /> c3 NUMBER,<br /> c4 NUMBER,<br /> c5 VARCHAR2(100),<br /> c6 NUMBER,<br /> c7 NUMBER<br />)</td>
<td style="vertical-align: top;"><b>TABLE 3<br /></b>CREATE TABLE table3 (<br /> c1 NUMBER,<br /> c2 VARCHAR2(30)<br />)</td>
</tr>
</tbody>
</table><br />
<div><div>There is zero chance that a natural language query will know that these tables represent movies, genres and streams. We can fix that ambiguity by <b><a href="https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/COMMENT.html#GUID-65F447C4-6914-4823-9691-F15D52DB74D7" target="_blank">adding database comments</a></b>:</div><div><br /></div><div><b>TABLE1</b></div><div>COMMENT ON TABLE table1 IS 'Contains movies, movie titles and the year it was released';</div><div>COMMENT ON COLUMN table1.c1 IS 'movie ids. Use this column to join to other tables';</div><div>COMMENT ON COLUMN table1.c2 IS 'movie titles';</div><div>COMMENT ON COLUMN table1.c3 IS 'year the movie was released';</div><div><b>TABLE2</b></div><div>COMMENT ON TABLE table2 IS 'transactions for movie views - also known as streams';</div><div>COMMENT ON COLUMN table2.c1 IS 'day the movie was streamed';</div><div>COMMENT ON COLUMN table2.c2 IS 'genre ids. Use this column to join to other tables';</div><div>COMMENT ON COLUMN table2.c3 IS 'movie ids. Use this column to join to other tables';</div><div>COMMENT ON COLUMN table2.c4 IS 'customer ids. Use this column to join to other tables';</div><div>COMMENT ON COLUMN table2.c5 IS 'device used to stream, watch or view the movie';</div><div>COMMENT ON COLUMN table2.c6 IS 'sales from the movie';</div><div>COMMENT ON COLUMN table2.c7 IS 'number of views, watched, streamed';</div><div><b>TABLE3</b></div><div>COMMENT ON TABLE table3 IS 'Contains the genres';</div><div>COMMENT ON COLUMN table3.c1 IS 'genre id. use this column to join to other tables';</div><div>COMMENT ON COLUMN table3.c2 IS 'name of the genre';</div><div> </div><div>That’s it! The meaningless table and column names can now be understood by the LLM using Select AI.</div><div><br /></div><div><b>Set up your Select AI profile to use comments</b></div><div><br /></div><div>A Select AI profile encapsulates the information needed to interact with an LLM. It includes the AI provider, the model to use, the source tables used for natural language queries – and whether comments should be passed to the model for SQL generation.</div><div><br /></div><div>begin</div><div><br /></div><div> dbms_cloud_ai.create_profile(</div><div><br /></div><div> profile_name => 'myprofile',</div><div> attributes => </div><div> '{"provider": "azure",</div><div> "azure_resource_name": "my_resource", </div><div> "azure_deployment_name": "my_deployment",</div><div> "credential_name": "my_credential",</div><div> "comments":"true", -- enable the use of comments</div><div> "object_list": [</div><div> {"owner": "moviestream", "name": "table1"},</div><div> {"owner": "moviestream", "name": "table2"},</div><div> {"owner": " moviestream", "name": "table3"} </div><div> ] </div><div> }'</div><div> );</div><div><br /></div><div> dbms_cloud_ai.set_profile(</div><div> profile_name => 'myprofile'</div><div> );</div><div>end;</div><div>/</div><div><b><br /></b></div><div><b>Run your queries</b></div><div><br /></div><div>You can now start asking questions using natural language against your complex schema. Even though the table and column names are meaningless, the LLM is able to identify the appropriate tables and columns through the comments and generate a query:</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZsCFD0FOmvFYzfWeEBigo-Ks3RYvDwtbt7IjCN1Iuyg-40-HmeZ_aoIOhyFgpwpDCxvC13Ye0nCDxiFLICuArx_PIFS4XrxTy-YCCSCyUsPoyXEqeUOK4w7KG98BQxxrgiA_beu6HMjj8xTnhdi4TSLJZkSNfGED-7fT5bF6rFoHmsM0swPwIZzhw-Vc/s1062/comments.gif" style="margin-left: 1em; margin-right: 1em;"><img alt="How to help AI models generate better natural language queries" border="0" data-original-height="942" data-original-width="1062" height="568" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZsCFD0FOmvFYzfWeEBigo-Ks3RYvDwtbt7IjCN1Iuyg-40-HmeZ_aoIOhyFgpwpDCxvC13Ye0nCDxiFLICuArx_PIFS4XrxTy-YCCSCyUsPoyXEqeUOK4w7KG98BQxxrgiA_beu6HMjj8xTnhdi4TSLJZkSNfGED-7fT5bF6rFoHmsM0swPwIZzhw-Vc/w640-h568/comments.gif" title="How to help AI models generate better natural language queries" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-1885037700550803912024-03-18T14:23:00.000+05:302024-03-18T14:23:57.365+05:30Announcing the Oracle APEX Sample Document Generator App!<div>Today, we are releasing the Sample Document Generator App, which showcases the integration of the Document Generator in APEX. The app is now available in the APEX 23.2 Gallery.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd1Y3IT3XpE7sTn425nqyE0AwjLJTnec2Nzxe5CIJ2s8Q966_CJ047nkTK9ULzadi7HNHv3lgRqnvM3fqWNOHDzICi1HvROY0Zyw7HUqMUnkKVgySavqgrgEPmn6Mgiv9pXL3o4Crt2UeihTS7XbAodUz120LFGQ6a5YURL_TB1eLGDpGsc3_QT-N1J0w/s350/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="294" data-original-width="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd1Y3IT3XpE7sTn425nqyE0AwjLJTnec2Nzxe5CIJ2s8Q966_CJ047nkTK9ULzadi7HNHv3lgRqnvM3fqWNOHDzICi1HvROY0Zyw7HUqMUnkKVgySavqgrgEPmn6Mgiv9pXL3o4Crt2UeihTS7XbAodUz120LFGQ6a5YURL_TB1eLGDpGsc3_QT-N1J0w/s16000/1.png" title="Announcing the Oracle APEX Sample Document Generator App!" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">This app includes examples to generate PDF documents using a custom plug-in, which invokes the Document Generator Function. Feel free to explore the plug-in code, look at MS Word templates stored in Static Application Files, and the JSON.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Cost-effectiveness</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In order to create the Pre-Built Document Generator function, you need to have a paid account but the pricing is extremely cost-effective. With Oracle Cloud Functions, you only pay for the resources consumed during execution, eliminating the need for upfront infrastructure investment.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Installation on Oracle Cloud is required</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The sample app uses a plug-in, which leverages the <a href="https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/plsqlsdk.htm" target="_blank">Oracle Cloud Infrastructure SDK for PL/SQL</a>, which makes it very easy to manage / invoke OCI resources. This SDK is only available on the Autonomous Database, which means the sample app requires an Autonomous Database. This does not mean you can’t use the Document Generator in another APEX instance.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">There are several prerequisites we must take care of before we can use the sample app to generate PDF documents. These steps are outlined below.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Configure the Document Generator Function</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">On OCI, open the navigation menu and select Pre-Built Functions in Developer Services.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrs0gGbZn5TMbT4rC_6Xk3NEaIXxG_Vt5H73t8EBkCx8iLem0gQruYihkphZCSgpZKR2xGksgXHxT9x4noCqO0ePgdeLgjnQUfUA4_ZoANWm_Eg2-64bdKqOMgNmzoz1ziqnzkYkGDjOGS68VazsibKhnx_CbOu3SWt9J6xEVUgEeeXlROeFWyfg_E1aQ/s665/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="475" data-original-width="665" height="457" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrs0gGbZn5TMbT4rC_6Xk3NEaIXxG_Vt5H73t8EBkCx8iLem0gQruYihkphZCSgpZKR2xGksgXHxT9x4noCqO0ePgdeLgjnQUfUA4_ZoANWm_Eg2-64bdKqOMgNmzoz1ziqnzkYkGDjOGS68VazsibKhnx_CbOu3SWt9J6xEVUgEeeXlROeFWyfg_E1aQ/w640-h457/2.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Select Document Generator. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLhnrtPE_VRepltJ4-mHvQ2snB9nzj4z3rvIjeGGmutVgNLQo2D1zenFnYfeBY3w6nGkCAfBoRWzhsjwtFz1IGDL7LLfUal2Mqc74X3nRE4TITvo8xS7d7pehZMbVjS92DHN-lQkgnSgc4S3WeHc6ZWCXCXlbcNjQhfhec5CVo10u9VLsBWiUuwNjT0Xk/s1024/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="463" data-original-width="1024" height="289" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLhnrtPE_VRepltJ4-mHvQ2snB9nzj4z3rvIjeGGmutVgNLQo2D1zenFnYfeBY3w6nGkCAfBoRWzhsjwtFz1IGDL7LLfUal2Mqc74X3nRE4TITvo8xS7d7pehZMbVjS92DHN-lQkgnSgc4S3WeHc6ZWCXCXlbcNjQhfhec5CVo10u9VLsBWiUuwNjT0Xk/w640-h289/3.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Click the Create Function button. If a suitable application doesn't already exist in the current compartment, click Create new application.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_i91xmX4iCtaDOk9lk4yZ0ZDrTVG_clTNS4Zkssg1UuNQKllhiVK4rzlwAtmU4Z0qkj1gF2Ut9WSiu2bYxKdKqnGKUdpO4vjAWsBf1V_1N_AiueQqPN-rlwNkH5Eui-Ix7Dign_8BreH-de-_jKFfzl5l8j5wFnP3RQ6IAJ3R8_t2iTFeMhw7i_ayIfk/s1024/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="591" data-original-width="1024" height="370" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_i91xmX4iCtaDOk9lk4yZ0ZDrTVG_clTNS4Zkssg1UuNQKllhiVK4rzlwAtmU4Z0qkj1gF2Ut9WSiu2bYxKdKqnGKUdpO4vjAWsBf1V_1N_AiueQqPN-rlwNkH5Eui-Ix7Dign_8BreH-de-_jKFfzl5l8j5wFnP3RQ6IAJ3R8_t2iTFeMhw7i_ayIfk/w640-h370/4.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Tip: when you are using Document Generator in production, you can enable provisioned concurrency to reduce initial provisioning time and ensure hot starts.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_OjdiBiOv0rJNbXfni_TQ4bySi9vQNbPS9RQvEuq3FrNWwseRKhs9i4ah9zIJRYHYQugtRzhmyANLI3Kn4J-JG2lhFnTw3vZ3WzH1F85cUCyWhKM5txbtMDd0MRezdrAIHUZlr0WbWFytdHE5EvB1UPqYGZ4QzrQwUEWwQoh3QOMlJtsRKsJP2hmCAMA/s392/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="185" data-original-width="392" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_OjdiBiOv0rJNbXfni_TQ4bySi9vQNbPS9RQvEuq3FrNWwseRKhs9i4ah9zIJRYHYQugtRzhmyANLI3Kn4J-JG2lhFnTw3vZ3WzH1F85cUCyWhKM5txbtMDd0MRezdrAIHUZlr0WbWFytdHE5EvB1UPqYGZ4QzrQwUEWwQoh3QOMlJtsRKsJP2hmCAMA/w640-h302/5.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Click the Create button to finish the wizard and you can see the function is now deployed in the application.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnUX_3156k_GzRtEbnCEkSZfzgDV_HDOguP-2Eee0mgJTz-eUfaIKWZIGpJLJ18pZPQtFWN8Al6Yvn1h23YhLxmD27SChyvwmJ9KZMgj8qclK_HZsPZfQDTwV_i32suxBVjZEVhhJJSw1HIStk9Q5aAfXGM2NjUeeKsJlHdypZFaBaJnqk6oqmw7a0F64/s1024/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="394" data-original-width="1024" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnUX_3156k_GzRtEbnCEkSZfzgDV_HDOguP-2Eee0mgJTz-eUfaIKWZIGpJLJ18pZPQtFWN8Al6Yvn1h23YhLxmD27SChyvwmJ9KZMgj8qclK_HZsPZfQDTwV_i32suxBVjZEVhhJJSw1HIStk9Q5aAfXGM2NjUeeKsJlHdypZFaBaJnqk6oqmw7a0F64/w640-h246/6.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Create an Object Storage Bucket</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Open the navigation menu and select Buckets from Storage.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ZrkO-dJqHy6RsV80XKSu_5pykMO12O1tzC21UhNU4gjItiZP_lQIYJKbj0YWkExUSynTlj6XXBz2rCEnq4PUYTZoTJCJzNwYg-0FC8I3STXz4iCBNzA3Xq05kcpj5FIAOpdvmKXwMx1cjMvm3T85FEVLFX_k7k4ktXRJBxzTHNfg6kriETwwlTRE-_E/s830/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="282" data-original-width="830" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ZrkO-dJqHy6RsV80XKSu_5pykMO12O1tzC21UhNU4gjItiZP_lQIYJKbj0YWkExUSynTlj6XXBz2rCEnq4PUYTZoTJCJzNwYg-0FC8I3STXz4iCBNzA3Xq05kcpj5FIAOpdvmKXwMx1cjMvm3T85FEVLFX_k7k4ktXRJBxzTHNfg6kriETwwlTRE-_E/w640-h218/7.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Create a new bucket if needed and provide a name.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3-67O3IFUEinJ_s-ZXMdI_eseZT929WY8sJ8PKnxXcDloWCe8h7C5ZVGJofWarb2iIHO9px6GC3sjJnMFCK-8yrOJyPx9WIBG69CirPxi5TX5n-8SgcD7l9RDEikRuQONxap5tgrYX9Ac7VvhRAq_0WRUL1QPbh_AIR6Jko2-SQPZFFx4aVnFSAlS3tQ/s1024/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="687" data-original-width="1024" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3-67O3IFUEinJ_s-ZXMdI_eseZT929WY8sJ8PKnxXcDloWCe8h7C5ZVGJofWarb2iIHO9px6GC3sjJnMFCK-8yrOJyPx9WIBG69CirPxi5TX5n-8SgcD7l9RDEikRuQONxap5tgrYX9Ac7VvhRAq_0WRUL1QPbh_AIR6Jko2-SQPZFFx4aVnFSAlS3tQ/w640-h430/8.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">The sample app will use this bucket later to store the MS Word templates and PDF documents.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Configure the Database</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In the next steps we make sure the database has the rights to invoke the Document Generator function and manage objects in Object Storage Buckets.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">We start by creating a Dynamic Group for the database.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Open the navigation menu and select Domains from Identity & Security. Select the identity domain you want to work in and click Dynamic Groups. Create a new Dynamic Group if needed by specifying a name, description, and a rule using the OCID of your Autonomous Database as resource ID. Remember the name because we will need it afterwards.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcPNBTge79iqE_pLtw2nGPmTux6smApOZx59YyMOWP3ssyWUBo8PmDRAMw4vE-HPJn3z5bIsV8cqjGBW9v3ccH88HpxBoDI08HNKhTPt8RAcoqQN40TIy27fYAebPd0Obi2YAoXiVTBJTCLZ7kDYovY1Y_AepAKgRsIQ59YIuRdtzzvs9jJY91ePlHXjE/s1024/9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="687" data-original-width="1024" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcPNBTge79iqE_pLtw2nGPmTux6smApOZx59YyMOWP3ssyWUBo8PmDRAMw4vE-HPJn3z5bIsV8cqjGBW9v3ccH88HpxBoDI08HNKhTPt8RAcoqQN40TIy27fYAebPd0Obi2YAoXiVTBJTCLZ7kDYovY1Y_AepAKgRsIQ59YIuRdtzzvs9jJY91ePlHXjE/w640-h430/9.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">The matching rule is defined as:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">resource.id = '<db_ocid>'</div><div><br /></div><div><div>Next, we create a new Policy for this Dynamic Group. Open the navigation menu and select Policies from Identity & Security.</div></div></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVxzJFHDSs0WhpjgmvpPPqK5zhtgE2m1tx2rGkntHB-zhLEx86BJ0ghH2sIS5AVKxjYJ93530gSIFzJjkkdHV0VufHxO1XdkkeIkJwG8WUynx6ad0oQ4O79zcVbJKVLycezkJWkg1B1NdYyba1zOGWAsB5ChUOZLgcTd92LhwfX_7ma9f2vU7X12dmUGc/s602/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="513" data-original-width="602" height="546" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVxzJFHDSs0WhpjgmvpPPqK5zhtgE2m1tx2rGkntHB-zhLEx86BJ0ghH2sIS5AVKxjYJ93530gSIFzJjkkdHV0VufHxO1XdkkeIkJwG8WUynx6ad0oQ4O79zcVbJKVLycezkJWkg1B1NdYyba1zOGWAsB5ChUOZLgcTd92LhwfX_7ma9f2vU7X12dmUGc/w640-h546/10.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Create the following policy.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0pVEQkTLcVJ__onwd9GoWPePvmk7OP8CUNtcTT6xKeGf8l-iiPKdIiPXn0wLROCSUnymVuCrIKsDM7rZef3EXJVSwnCJA0ry3XgBcq_YzFfNKHZNrB8JauIeWfQPGXnuHb9GTrZtGZq9BDijRcnOtALR8SfPtIYNEKnDW6WnaXmY4cBpxhpje7hE6-b8/s851/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="851" data-original-width="697" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0pVEQkTLcVJ__onwd9GoWPePvmk7OP8CUNtcTT6xKeGf8l-iiPKdIiPXn0wLROCSUnymVuCrIKsDM7rZef3EXJVSwnCJA0ry3XgBcq_YzFfNKHZNrB8JauIeWfQPGXnuHb9GTrZtGZq9BDijRcnOtALR8SfPtIYNEKnDW6WnaXmY4cBpxhpje7hE6-b8/w524-h640/11.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="524" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Allow dynamic-group <group_name> to manage objects in compartment <compartment_name></div><div class="separator" style="clear: both;">Allow dynamic-group <group_name> to manage buckets in compartment <compartment_name></div><div class="separator" style="clear: both;">Allow dynamic-group <group_name> to use functions-family in compartment <compartment_name></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">As final step in OCI we have to execute the following statements as the ADMIN user in the Autonomous Database.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Go to the Automous Database and Click SQL under Database Actions.</div></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip3IczPUXUIxfa387ZAz-1JXDMJGfahZ3NHG3hLI8SSzPgWtOj8-bRez_GTUxuwih16gWSlIkR7_qzhnfDEFzo0GPT8gVs84900IBN9_c2meqMZQbAlRLlZUZ8sAIJVX0JD9A7xjogEzPaRke85Azk5vq-yS9OrJ7Px8xfq47JY1gt32omOnAEUxZsDng/s502/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="364" data-original-width="502" height="464" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip3IczPUXUIxfa387ZAz-1JXDMJGfahZ3NHG3hLI8SSzPgWtOj8-bRez_GTUxuwih16gWSlIkR7_qzhnfDEFzo0GPT8gVs84900IBN9_c2meqMZQbAlRLlZUZ8sAIJVX0JD9A7xjogEzPaRke85Azk5vq-yS9OrJ7Px8xfq47JY1gt32omOnAEUxZsDng/w640-h464/12.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Execute the following code as the ADMIN user.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwIWZ4r8B9kblN9YhEJjpm7rZzDUBMnl0GNURQDC-WTes7SfHukzdKCzEf-aFIcsCe_IywwD-TeXJtpX1hYQbwEek59YX9yszeKYujvRu5K7FzsTLqZgNTGtVFJv_Sen9Ztkp8wneIu_YpTETPcsQ-y3xXras1EoHYQYitWi6K5wms2rv4ziTIcT_CbjI/s1001/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="606" data-original-width="1001" height="388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwIWZ4r8B9kblN9YhEJjpm7rZzDUBMnl0GNURQDC-WTes7SfHukzdKCzEf-aFIcsCe_IywwD-TeXJtpX1hYQbwEek59YX9yszeKYujvRu5K7FzsTLqZgNTGtVFJv_Sen9Ztkp8wneIu_YpTETPcsQ-y3xXras1EoHYQYitWi6K5wms2rv4ziTIcT_CbjI/w640-h388/13.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">begin</div><div class="separator" style="clear: both;"> DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();</div><div class="separator" style="clear: both;"> DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => '<WORKSPACE_SCHEMA>');</div><div class="separator" style="clear: both;">end;</div><div class="separator" style="clear: both;">/</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">grant DWROLE to <WORKSPACE_SCHEMA>;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">The resource principal is used to authenticate and access Oracle Cloud Infrastructure resources. The DWROLE enables you to use the OCI PL/SQL SDK.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Quickly Installing the Document Generator Sample App</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Perform the following steps to install the app:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. Go to the App Gallery.</div><div class="separator" style="clear: both;">2. Search for the Sample Document Generator app.</div><div class="separator" style="clear: both;">3. Click install.</div><div class="separator" style="clear: both;">4. Go to application and navigate to Shared Components > Component Settings</div><div class="separator" style="clear: both;">5. Specify values for the empty attributes:</div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li><b>Region Name:</b> The OCI region of the Object Storage Bucket and Document Generator function.</li><li><b>Document Generator Function OCID:</b> The OCID of the function in the OCI application.</li><li><b>Bucket Namespace:</b> The OCI namespace of the Object Storage Bucket.</li><li><b>Bucket Name:</b> The name of the Object Storage Bucket.</li></ul></div></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7iOyh7daf-fv_WH5JinLCMn3tldB2bRpyD6H6BLIsDa_OeI_I7H3yFy8F51kZ4FKmFz_v7UOCaoNkC8KtvxjydOpAJhFnd9Xdqojh9-ML9cu2EZd3aiYZHfZiJYQ0Ouwox71S9rBt7r4P7bj5grlbHF4Dy2I7Efh__lqIa5cai2B1XFFi2TpSFxNBOwg/s822/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="540" data-original-width="822" height="420" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7iOyh7daf-fv_WH5JinLCMn3tldB2bRpyD6H6BLIsDa_OeI_I7H3yFy8F51kZ4FKmFz_v7UOCaoNkC8KtvxjydOpAJhFnd9Xdqojh9-ML9cu2EZd3aiYZHfZiJYQ0Ouwox71S9rBt7r4P7bj5grlbHF4Dy2I7Efh__lqIa5cai2B1XFFi2TpSFxNBOwg/w640-h420/14.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Now we have completed the prerequisites and are ready to use the app!</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQzMQrRUlYFZHw-lKbKRKPVWNw588LwIjofwk7KGJkTWZhLnYEoN6z1Ka9Iq7ZXRciTjZyw-G7P7PeiKkDpCdVBh0HheR1dipUjz6Ysb6n0EtP4egnT5QoASfQFkfcfJADtmeRIjD4x6Yd3SeTAg7mCFUfQyFxBBfTXPDKd9lp-onSdOhnqx0_0Aq_hYs/s1024/15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the Oracle APEX Sample Document Generator App!" border="0" data-original-height="604" data-original-width="1024" height="378" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQzMQrRUlYFZHw-lKbKRKPVWNw588LwIjofwk7KGJkTWZhLnYEoN6z1Ka9Iq7ZXRciTjZyw-G7P7PeiKkDpCdVBh0HheR1dipUjz6Ysb6n0EtP4egnT5QoASfQFkfcfJADtmeRIjD4x6Yd3SeTAg7mCFUfQyFxBBfTXPDKd9lp-onSdOhnqx0_0Aq_hYs/w640-h378/15.png" title="Announcing the Oracle APEX Sample Document Generator App!" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-43708014866853056552024-03-15T11:46:00.000+05:302024-03-15T11:46:46.367+05:30Introducing Zero to low-cost Autonomous Database for Developers<div>Oracle has recently been recognized as a <a href="https://www.oracle.com/cloud/gartner-mq-strategic-cloud-platform-services-leader/" target="_blank">leading cloud service provider</a> (CSP), providing a full suite of cloud computing solutions including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and industry-specific application solutions via Software as a Service (SaaS).</div><div><br /></div><div>To accomplish this, we created a next-generation cloud experience that focuses on enterprise performance, availability, security and cloud economics where you pay for what you use. The economic benefits of <b><a href="https://dbexamstudy.blogspot.com/p/1z0-909-oracle-mysql-80-database.html">Oracle Cloud Infrastructure (OCI)</a></b> are substantial, enabling workloads such as AI and Oracle Database to achieve outstanding price-performance.</div><div><br /></div><div>We are now further improving OCI economics for our Oracle Database cloud service portfolio with the introduction of Oracle Autonomous Database for Developers, which provides Autonomous databases for developers on Dedicated Exadata Infrastructure and Exadata Cloud@Customer at no additional cost. </div><div><br /></div><div>Oracle Autonomous Database is an ideal database for developers. It provides multi-model database capabilities for many types of data (including relational, JSON, spatial, graph, multimedia, XML, files, and more), many workloads (transactional, data warehouse, and analytics), and typical developer interfaces (full SQL, REST data access, and language drivers). It comes with free development tools such as Database Actions, Oracle Application Express (APEX) for low-code app creation, and Oracle REST Data Services. It also includes in-database machine learning algorithms and Select AI which enables users to query data using generative AI powered natural language processing.</div><div><br /></div><div>Autonomous Database for Developers enables developers to experiment with Autonomous Database and build applications with no additional cost. The free developer databases are intended solely for development and functional testing. There is no limit on the number of developer databases users can create on their Exadata and these databases have no expiration dates. Autonomous Database for Developers supports Transaction Processing and Data Warehousing workload types. Each developer database instance has 4 ECPUs, 20 GB of data storage, and supports up to 30 concurrent database sessions.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYZuevObCzw1mGA4Coha1-bICQrELnw9ZxPvxZYFRzTgvYlSYzDewrYEk2QJ7yvc75zxWMPGWEoZf6jwalRqn7eIb-EqTKGjeq9-vINbEukGzj_L55hCjYroxBLqRo-nCxWHnemqpa5v_7QaVl3qPPWcLiFRM2Y6XS_j_fwm1Zp3R8KhKv8HwZ9ety6jU/s677/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Zero to low-cost Autonomous Database for Developers" border="0" data-original-height="487" data-original-width="677" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYZuevObCzw1mGA4Coha1-bICQrELnw9ZxPvxZYFRzTgvYlSYzDewrYEk2QJ7yvc75zxWMPGWEoZf6jwalRqn7eIb-EqTKGjeq9-vINbEukGzj_L55hCjYroxBLqRo-nCxWHnemqpa5v_7QaVl3qPPWcLiFRM2Y6XS_j_fwm1Zp3R8KhKv8HwZ9ety6jU/w640-h460/1.png" title="Introducing Zero to low-cost Autonomous Database for Developers" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Except for Autonomous Data Guard, Database In-Memory, Autoscaling, and long-term backups, all other features of Autonomous Database, such as backup and restore, cloning, patching, APEX, Database Actions, ORDS, Performance Hub, Select AI, APIs, metrics, and notifications are included in Autonomous Database for Developers. While developer databases may lack a few production database features, they are otherwise 100% compatible with the Autonomous databases used in production environments, letting developers create and test their applications against identical database environments.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVzlk5-zHgiSV6KddEYGfjNXvahBnwOcYwE7ZAmkSQfbErMvJha3zJRZq3Jdo7zMnAgW2pafQ1Nj7kETRpDQ2iECdSX6_Gu8zEARsLd-Ras-5w4mlgqQk0YPmIFZcFXsuJ_VF_F-qpf5urdwPaZTXkkJJb1WqWP05MwDzEQTJRh0hwWhADJnKS60hdCVM/s1024/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Zero to low-cost Autonomous Database for Developers" border="0" data-original-height="441" data-original-width="1024" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVzlk5-zHgiSV6KddEYGfjNXvahBnwOcYwE7ZAmkSQfbErMvJha3zJRZq3Jdo7zMnAgW2pafQ1Nj7kETRpDQ2iECdSX6_Gu8zEARsLd-Ras-5w4mlgqQk0YPmIFZcFXsuJ_VF_F-qpf5urdwPaZTXkkJJb1WqWP05MwDzEQTJRh0hwWhADJnKS60hdCVM/w640-h276/2.png" title="Introducing Zero to low-cost Autonomous Database for Developers" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Developer databases are automatically patched following the same schedule as regular Autonomous databases. Developers can file service requests (SR) to Oracle Support to get assistance with their developer databases; however, there is no severity 1 SR support or critical one-off patches. Autonomous Database for Developers adheres to a 99.5% service level objective (SLO).</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">While Autonomous Database for Developers is for development and functional testing only, users can access the full suite of Autonomous Database features or scale up the database for non-development deployments such as load/stress testing and production by cloning a developer database to a full-featured Autonomous Database instance and running there.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle Autonomous Database offers developers a powerful and user-friendly platform for building and deploying mission-critical applications with high performance, scalability, and built-in security while minimizing administrative overhead and costs. With the introduction of Autonomous Database for Developers and it’s free Autonomous databases for developers, there is now an even more compelling reason to start all new application development with Autonomous Database.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-48355808995442822952024-03-13T11:40:00.003+05:302024-03-13T11:40:56.643+05:30Audit Active Data Guard with Data Safe in Oracle Cloud<div>We’re excited to announce that <b><a href="https://www.oracle.com/security/database-security/data-safe/" target="_blank">Oracle Data Safe</a></b> can now monitor the database activity of Active Data Guard configurations for Oracle Database on Oracle Exadata Database Service on Dedicated Infrastructure (formerly known as Exadata Cloud Service) and Oracle Base Database Service (formerly known as Oracle Database Cloud Service).</div><div><br /></div><div>Active Data Guard (ADG) is an evolution of Oracle Data Guard technology that incorporates significant innovation designed for a specific purpose - to offload work from the production database, freeing up resources for critical transactions. ADG enables read-only access to a physical standby database while redo application is active. Workloads such as reporting, analytics, backups, queries, and even occasional writes (a new ADG feature as of Oracle Database 19c) can be offloaded from the production system to a synchronized physical standby database. These workloads would otherwise consume valuable resources on the primary production site; therefore, ADG saves valuable CPU and I/O cycles and promotes efficient use of system resources in the configuration. Since ADG opens up standby databases for read/write workloads, most regulatory and compliance requirements emphasize the need to monitor the database activity on standby databases, though less rigorously compared to the primary production database.</div><div><br /></div><div>Data Safe now provides a single pane of glass monitoring database activity for all the database peers in an ADG configuration (including the primary database and all the associated standby databases) without worrying about redundant audit record collection. A brief insight into the mechanism within Oracle Database auditing that enables the feature in Data Safe explains why this is important.</div><div><br /></div><div>Unified audit records within the Oracle Database are written to a table in the AUDSYS schema called AUD$UNIFIED. When the database is not writable (typically occurs when the database is closed or is read-only as in ADG), the Oracle Database writes audit records to external operating system spillover .BIN files. The audit data of the spillover files is presented in the view GV$UNIFIED_AUDIT_TRAIL.</div><div><br /></div><div>The view UNIFIED_AUDIT_TRAIL is a UNION ALL of the table AUDSYS.AUD$UNIFIED and the view GV$UNIFIED_AUDIT_TRAIL.</div><div><br /></div><div>The capability to monitor audit records from standby databases is built into the UNIFIED_AUDIT_TRAIL since unified audit was introduced in Oracle Database 12c. However, because audit records from the primary database (written to the database table AUD$UNIFIED) are captured in redo and replicated to the standby, it was challenging to separate activity on the standby from activity on the primary. Oracle Database 19c Release Update 21 (19.21) introduced a new column, SOURCE, in UNIFIED_AUDIT_TRAIL, making it easy to differentiate the origin of audit records. That new column helps avoid redundant audit record collection from ADG.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCbZ8MzwMLud4GDNtEo9oy3aItKavxOeoZWOsdmdX3h3oe_mVVv8JGBHW26iEQhq3YpUOXG42NvZxSlAzNtZ0o73tLOsgVzyqfETJxQEIENj4esbDYGQh_b59-ST782joEQxI1fRfRHeetU4_6HM2Ud7B9LQWiklK0grIhaCESUI5LwJZQS-29u5xZkV4/s1146/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Audit Active Data Guard with Data Safe in Oracle Cloud" border="0" data-original-height="494" data-original-width="1146" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCbZ8MzwMLud4GDNtEo9oy3aItKavxOeoZWOsdmdX3h3oe_mVVv8JGBHW26iEQhq3YpUOXG42NvZxSlAzNtZ0o73tLOsgVzyqfETJxQEIENj4esbDYGQh_b59-ST782joEQxI1fRfRHeetU4_6HM2Ud7B9LQWiklK0grIhaCESUI5LwJZQS-29u5xZkV4/w640-h276/1.jpg" title="Audit Active Data Guard with Data Safe in Oracle Cloud" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure1: Unified audit trail with SOURCE column to differentiate the origin of audit records</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Leveraging the SOURCE column value in the UNIFIED_AUDIT_TRAIL view enables Data Safe to monitor the entire ADG configuration with a single primary database and multiple standby databases as a single target with multiple unified audit trails. The primary database in the ADG (as identified by the system-generated failover connection string with role-based database service) has an audit trail to collect from the database table AUDSYS.AUD$UNIFIED by querying the UNIFIED_AUDIT_TRAIL view with SOURCE set to DATABASE. Each database in the ADG will have an audit trail to collect from that database’s corresponding spillover files by querying the UNIFIED_AUDIT_TRAIL view with SOURCE set to FILE.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A sample monitoring configuration for an ADG with one primary and two standby databases is represented here.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRqUv9xOB39ulzgFJtQ8ZG74UVr8i-qpqmqQAVp5aDPsdWJ8TBQzWZxv1saTy5MiANkqlMD-mVAbLSye-UZe_EjCg4FbGoLKBFtTeeb2Xl4Wqvf3LAHrTSu2ZqfO0nJhda_PBTFLDT_pSXFHi0sDYmT7O6ZJVmfemdiWej7F0eedI1Lm8woHqvicbT56Q/s1379/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Audit Active Data Guard with Data Safe in Oracle Cloud" border="0" data-original-height="648" data-original-width="1379" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRqUv9xOB39ulzgFJtQ8ZG74UVr8i-qpqmqQAVp5aDPsdWJ8TBQzWZxv1saTy5MiANkqlMD-mVAbLSye-UZe_EjCg4FbGoLKBFtTeeb2Xl4Wqvf3LAHrTSu2ZqfO0nJhda_PBTFLDT_pSXFHi0sDYmT7O6ZJVmfemdiWej7F0eedI1Lm8woHqvicbT56Q/w640-h300/2.png" title="Audit Active Data Guard with Data Safe in Oracle Cloud" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure2: Database activity monitoring of ADG as a single target with multiple unified audit trails</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Once you register the primary, along with any ADG peers, in Data Safe as a database target, the associated audit profile contains the details of the multiple audit trails discovered automatically from the metadata. The audit trails will have an indicator (FILE or TABLE) to identify the SOURCE of audit records, as shown here.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpU6WAfrZiIoPmwWPFLdCotSEJXQcpUvzpd-Eyvf3UBcyEk15Z6uo26q-5ZKxHE0C5EqglfVG3vLEZtQRskm6Trsa9zSgSFEGD7_D92Sex0Db5Qx0RKXe5uHTIZ7F1Hxs7lIaDmXg8wva2K0TUELyXr0dDI2lCzy-BadXq1OIIlSqV-tcLcL_WfF4tU6o/s1378/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Audit Active Data Guard with Data Safe in Oracle Cloud" border="0" data-original-height="863" data-original-width="1378" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpU6WAfrZiIoPmwWPFLdCotSEJXQcpUvzpd-Eyvf3UBcyEk15Z6uo26q-5ZKxHE0C5EqglfVG3vLEZtQRskm6Trsa9zSgSFEGD7_D92Sex0Db5Qx0RKXe5uHTIZ7F1Hxs7lIaDmXg8wva2K0TUELyXr0dDI2lCzy-BadXq1OIIlSqV-tcLcL_WfF4tU6o/w640-h400/3.jpg" title="Audit Active Data Guard with Data Safe in Oracle Cloud" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure3: Audit profile of the single ADG target with multiple unified audit trails in Data Safe</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Collecting unified audit records in Data Safe commences once you start the corresponding audit trails, and audit reports show the ADG target's audit events from the primary and standby databases.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Sample login activity report of the ADG target is shown here with audit events from both primary and standby databases. The column database unique name lets you correlate activity to the specific database in the ADG target where the audit event was triggered.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6kwcC2_oH-GHiK00OWLaMkkl-ffo1aU367r9MkhDsiNq1BaZwL-Y69argvMn5h3Qs5Me9hdN8ZTaHtiVEw0IfNFm_Sdt9y0vecftkgtM4px3-Vi9DCy5BbrEve20ME8F5D-Yso5ymul5PLSmnfvJo-dKWFCSwiZTMV6G4OJmlxth424LPaMLPI7toiow/s1379/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Audit Active Data Guard with Data Safe in Oracle Cloud" border="0" data-original-height="651" data-original-width="1379" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6kwcC2_oH-GHiK00OWLaMkkl-ffo1aU367r9MkhDsiNq1BaZwL-Y69argvMn5h3Qs5Me9hdN8ZTaHtiVEw0IfNFm_Sdt9y0vecftkgtM4px3-Vi9DCy5BbrEve20ME8F5D-Yso5ymul5PLSmnfvJo-dKWFCSwiZTMV6G4OJmlxth424LPaMLPI7toiow/w640-h302/4.jpg" title="Audit Active Data Guard with Data Safe in Oracle Cloud" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure4: Audit report in Data Safe of the ADG target showing audit events from all the databases</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In a nutshell, Data Safe provides a single pane of glass monitoring database activity for all the Oracle databases in ADG configuration as a single target with multiple unified audit trails.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-4528099318421549732024-03-11T13:39:00.000+05:302024-03-11T13:39:29.321+05:30Customizing risk assessment in Oracle Data Safe<div>Oracle Data Safe Security Assessment helps you assess and monitor changes to your database security risks by identifying security misconfigurations, missing policies, users, and entitlements. After the initial <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html"><span style="font-size: large;">risk identification</span></a></b>, customers typically evaluate the risks by validating them and their risk levels before remediating them. Sometimes the identified risk is not applicable as there might be some other mitigating control or it might not be important for your business or auditors. Customers would like Data Safe to adjust the findings to match their organization’s specific needs and help streamline the assessment process.</div><div><br /></div><div>We are pleased to announce that you can now “defer risk” or “change risk” level to match your specific environment and deployment. “Defer Risk” allows you to indicate that you have reviewed the finding and will work on it later (or, eventually, never) so that it doesn’t show up again as a finding in subsequent reports. “Change Risk,” allows you to raise or lower the severity of a finding to suit your requirements.</div><div><br /></div><h3 style="text-align: left;"><b>Use Cases</b></h3><div><br /></div><div>In the example below, the organization has decided to “defer” the risk for users with expired passwords until they can study who are these users</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLU4BUEbzChwDI-lhmCPj_5vJh7TCoDf4E_HQF8hNQywz6muVjVGGkXc7B8_iw_8AxSachToP9wYVrpbTfhmM8upKilsjkpCVuRFhMGCBM8g43IuGmX1orP8wwcs0auPkV_85BHzA071ObaXY-a0OvYKx89vCBvPC1_lR8fuf58a9vfg12Pzn9iEzmRwY/s1726/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customizing risk assessment in Oracle Data Safe" border="0" data-original-height="927" data-original-width="1726" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLU4BUEbzChwDI-lhmCPj_5vJh7TCoDf4E_HQF8hNQywz6muVjVGGkXc7B8_iw_8AxSachToP9wYVrpbTfhmM8upKilsjkpCVuRFhMGCBM8g43IuGmX1orP8wwcs0auPkV_85BHzA071ObaXY-a0OvYKx89vCBvPC1_lR8fuf58a9vfg12Pzn9iEzmRwY/w640-h344/1.png" title="Customizing risk assessment in Oracle Data Safe" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 1. Data Safe Security Assessment - Deferring or changing a finding risk level.</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Use case 1</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Data Safe Security Assessment identified that the database does not have a recent backup (no records in the last 90 days) and flagged it as a High Risk. But here, the database was backed up in the last 80 days, but as a cold backup with a 3rd party technology. You have decided that there is no risk, and you can now mark it as a “Pass.” Thus, the assessment report would no longer show this as a “finding”.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Use case 2</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Security Assessment identified that you have five users with the DBA role and marked it as “Evaluate.” After careful examination, you’ve noticed that all five users are approved accounts for your company’s database administrators. Despite reading the remarks on why it is better not to use the out-of-the-box DBA role, you consciously decided to mark it as “Low risk.” Database administrators are still using the default DBA role but there are plans to review their privileges with Privilege Analysis and to create a customized DBA role with only the necessary privileges. Additionally, Database Vault realms protect the application schemas to further reduce the risk of misuse or compromise.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJktbpBbfX1xDBrClyjaahJd7t36GPYppt3i1OuLJd-TQSDXKEld-updMtccJunN6evfUP87I1Piy0DaSrn4UcosbR3D8G-AqMFAh6_a28SfZXtpLYQaBFLKWPR2aw8j0E5x0Og5pfY4vkCnr-oqJ6yspkdxHEwLLd2oT2kx9QKWevXQc07kM32oC40nQ/s1736/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customizing risk assessment in Oracle Data Safe" border="0" data-original-height="938" data-original-width="1736" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJktbpBbfX1xDBrClyjaahJd7t36GPYppt3i1OuLJd-TQSDXKEld-updMtccJunN6evfUP87I1Piy0DaSrn4UcosbR3D8G-AqMFAh6_a28SfZXtpLYQaBFLKWPR2aw8j0E5x0Og5pfY4vkCnr-oqJ6yspkdxHEwLLd2oT2kx9QKWevXQc07kM32oC40nQ/w640-h346/2.png" title="Customizing risk assessment in Oracle Data Safe" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 2. Deferring risks for later reevaluation</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Use case 3</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Security Assessment identified that there is an application service account that allows unlimited failed logins. Investigation reveals that following the last password change several batch processes continued to use the old password, locking the application account and causing an outage. The issue is being worked on, with plans to implement gradual password rollover for all application account profiles. In the meantime, failed login attempts are being audited, and Audit Vault is configured to alert wherever a new failed login attempt is made. Setting this risk to deferred until the password rollover profiles are implemented.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Risk Modification Report</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The user changing the risk level will need to provide a justification for the change. The user can also set an expiration date. Setting an expiration date will clear up the overridden level at that time and again let the assessment show the actual finding level.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Modified risk levels are tracked and available under the “Risk modification report.” In this report you will see the originally identified risk level, the modified risk level, or whether the risk was deferred, along with the justification and the expiration date. The user that made the change and the last update time are also tracked.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy0gr6vvL8LAgr_UPvvTsCtdCFL8ty7MVoG0g0sZlSZhKh8MDx9qdAr_nikWPbaaaB1JclVvWjdcD9ocntT28yiHZcoGixdNCCmB_C6Y0EzZbF5gfmBJG62Hgb6bIvDrkauvSUddG-tmAzzDK7NyWDchOsk9-agsyrF5Wg_dM8p7baFtaiBuTkHZuccpQ/s1704/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Customizing risk assessment in Oracle Data Safe" border="0" data-original-height="382" data-original-width="1704" height="144" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy0gr6vvL8LAgr_UPvvTsCtdCFL8ty7MVoG0g0sZlSZhKh8MDx9qdAr_nikWPbaaaB1JclVvWjdcD9ocntT28yiHZcoGixdNCCmB_C6Y0EzZbF5gfmBJG62Hgb6bIvDrkauvSUddG-tmAzzDK7NyWDchOsk9-agsyrF5Wg_dM8p7baFtaiBuTkHZuccpQ/w640-h144/3.png" title="Customizing risk assessment in Oracle Data Safe" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;">Figure 3. Data Safe Security Assessment – Risk modification report.</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b>Conclusion</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">With this addition, Data Safe helps you streamline and adjust the assessment report to meet your corporate and regulatory needs. Now, in addition to assessing your database according to standard practices, you can also customize the risk levels, manually pass findings, and track your progress toward compliance.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-31112141394069576812024-03-08T10:54:00.003+05:302024-03-08T10:54:47.299+05:30Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)<div>One of our design goals for <b><a href="https://dbexamstudy.blogspot.com/p/1z0-116-oracle-database-security.html">Oracle Audit Vault and Database Firewall</a></b> is to continue to provide an enterprise-class solution that takes much of the complexity out of database activity monitoring and database security posture management. With that goal in mind, Audit Vault and Database Firewall (AVDF) 20 Release Update 11 (20.11) continues to expand support for enterprise-class features along with significant improvements in usability and operations.</div><div><br /></div><div>Here is what’s new in the latest AVDF Release:</div><div><br /></div><div><ul style="text-align: left;"><li>QuickCSV audit collector</li><li>Integration with identity provider for single-sign-on</li><li>Revamped alert UI workflow</li><li>Fleet-wide security assessment drift chart</li><li>Expanding support for tracking before/after values</li><li>Finely scoped database firewall policies and reports</li><li>Use of global sets in all activity and GDPR reports</li><li>Audit trail migration</li><li>AVDF certificate rotation from UI</li></ul></div><div><br /></div><div>Now, let's review some of those in detail.</div><div><br /></div><h3 style="text-align: left;"><b>QuickCSV audit collector</b></h3><div><br /></div><div>AVDF supports out-of-box audit log collection from multiple target types, including relational databases such as Oracle, Microsoft SQL Server, IBM DB2, MySQL, and PostgreSQL. AVDF also collects audit records from non-database targets, including operating system audit records for Windows, AIX, Sparc, and Solaris, as well as Microsoft Active Directory. However, there is a variety of systems that produce audit records, and this is where AVDF’s custom collector framework helps by collecting audit records available from database tables via RESTful API or audit data stored in JSON, CSV, and XML file formats.</div><div><br /></div><div>We have seen that comma-separated value (CSV) is one of the most popular audit log formats used in applications, databases, and infrastructure components. With the new QuickCSV Collector in AVDF 20.11, you can easily import CSV audit files and map them to the AVDF audit schema as a one-time task. Once mapping is complete, audit data will be collected periodically from the CSV audit files like any other supported targets.</div><div><br /></div><div>For example, you may use the QuickCSV collector to collect audit data from MariaDB, EnterpriseDB (Postgres), and other databases that create audit data in CSV. This approach helps you generate audit reports and alerts and protect and manage audit logs. </div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq_sEFBmIz6XCzbQ1Amzwe9MtqG8NvpjWtKIJgSlUsdVod3t75L_db0MO7PN1tQ7qcCD15GrbIISlN_weikVzICiwLsrDbqOyjMq1WwukV1CkL6OtgHFZW7r_VL5bVJ-u_MvNGNasxubh_j-c0X08EOzVGbHb9c3t1yXTdyDeBSP30VCA29jGSTJY5ho4/s710/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" border="0" data-original-height="554" data-original-width="710" height="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq_sEFBmIz6XCzbQ1Amzwe9MtqG8NvpjWtKIJgSlUsdVod3t75L_db0MO7PN1tQ7qcCD15GrbIISlN_weikVzICiwLsrDbqOyjMq1WwukV1CkL6OtgHFZW7r_VL5bVJ-u_MvNGNasxubh_j-c0X08EOzVGbHb9c3t1yXTdyDeBSP30VCA29jGSTJY5ho4/w640-h500/1.png" title="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 1: QuickCSV collector</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Integration with identity provider for single-sign-on</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Today, many of you implement single sign-on (SSO) using an enterprise identity service for your applications to minimize account proliferation and authentication mechanisms. Now, with AVDF 20.11, you can integrate with identity providers (IdP) such as Azure, Active Directory Federation Services, and Oracle Access Manager through SAML 2.0 integration. After integrating AVDF with your IdP, AVDF console users can be authenticated by your IdP using SSO.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">With this new feature, you have multiple options to choose from as your authentication method:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li>Users authenticated with SSO – added in 20.11</li><li>Users in a centralized directory like Microsoft Active Directory or OpenLDAP</li><li>Users authenticated using local passwords in AVDF</li></ul></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiduj4A3KfUt1xYFSTSNoPby80-sRtf3lb0HokW9AQqDRrH6PK6YdraEVmd3rqDStLwJ9H_yST34zUeqqxXpeGOLaaKPZVqhz-Clv0zf3FAjFOBLYjMZXRvGnKQb8pS4bIHopXYnYG5k5WIh9y0WjZvEGzDFyYAV40c5mMWkdnzZmPcP7okMaz1Lsv82fk/s522/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" border="0" data-original-height="522" data-original-width="456" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiduj4A3KfUt1xYFSTSNoPby80-sRtf3lb0HokW9AQqDRrH6PK6YdraEVmd3rqDStLwJ9H_yST34zUeqqxXpeGOLaaKPZVqhz-Clv0zf3FAjFOBLYjMZXRvGnKQb8pS4bIHopXYnYG5k5WIh9y0WjZvEGzDFyYAV40c5mMWkdnzZmPcP7okMaz1Lsv82fk/w560-h640/2.png" title="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" width="560" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 2: AVDF authentication methods</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Revamped alert UI workflow: </b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">We know most organizations are concerned about data breaches and ransomware, but when prevention fails, we need to help you understand what happened and detect attempts quickly. A better alert policy workflow contributes to a better detection system.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">AVDF’s alert policy creation is completely revamped in AVDF 20.11, providing an intuitive and user-friendly experience. New alert policies can be created with just a few clicks through pre-defined templates or by modifying existing policies with new conditions.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">AVDF’s unique interactive reporting capability allows customers to quickly slice and dice the data to reach that one record of interest, and now this capability is available in the alert policy as well. You can also use the interactive report filters to define complex conditions for which alerts can be raised. In the example below, if you want to receive an alert when a privileged user updates sensitive data directly from SQLPlus, you can simply apply filters to your report and copy that to create the alert condition.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0qVhMSvD6GK77KT6c8NrTa3QC6ZEOY3Y9e_YAnIA4Zx5_E3TOUgVyTT-YTP6ohRZrfEMKD9pttYQX8p2Qo_ro2MpCQ0p1XPX2GjMPWwIRiw-_2fhBdVsHCj4Oij7e70p6aZPIwDnNRsoHv2Eu9PX-hVX_CV-r9-TIiUbsCRAWlx1MUqhVH70BzZvICSc/s977/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" border="0" data-original-height="647" data-original-width="977" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0qVhMSvD6GK77KT6c8NrTa3QC6ZEOY3Y9e_YAnIA4Zx5_E3TOUgVyTT-YTP6ohRZrfEMKD9pttYQX8p2Qo_ro2MpCQ0p1XPX2GjMPWwIRiw-_2fhBdVsHCj4Oij7e70p6aZPIwDnNRsoHv2Eu9PX-hVX_CV-r9-TIiUbsCRAWlx1MUqhVH70BzZvICSc/w640-h424/3.png" title="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 3: Alert policy condition using report filters</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You can get a quick view of all the alerts generated on the alert policy page without going away from the alert definition, improving the overall user experience of alert usability. In addition, we made it much easier to notify the recipients of any alerts raised. Now, your auditor dashboard provides multiple actionable insights on the generated alerts.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2T4y3ViiJNLhqR_XZoJDNFzaPbVJPpkdBYpH3Jfb05v5Lvx3j8kMJwIfFSKgizU7gqbfWH0c4FfxYAKMkroo92K_wb85Hc2lsu24GuG2gl_6KDuYp-1zigJ1O2hs38UnpU0sr2t6YA6Djfj6Rt3Ds04Lg3h_55yryKXe9LGICN9tJ9QH7XGGWmDAkefA/s564/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" border="0" data-original-height="435" data-original-width="564" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2T4y3ViiJNLhqR_XZoJDNFzaPbVJPpkdBYpH3Jfb05v5Lvx3j8kMJwIfFSKgizU7gqbfWH0c4FfxYAKMkroo92K_wb85Hc2lsu24GuG2gl_6KDuYp-1zigJ1O2hs38UnpU0sr2t6YA6Djfj6Rt3Ds04Lg3h_55yryKXe9LGICN9tJ9QH7XGGWmDAkefA/w640-h494/4.png" title="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 4: Alert Insights</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Fleet-wide security assessment drift chart</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In AVDF 20.9 and 20.10, we introduced fleet-wide security assessment and drift management, respectively. AVDF 20.11 now allows you to quickly see how the security posture of all your Oracle databases is changing by introducing the security assessment drift chart. The chart on the auditor’s dashboard compares the latest assessment with the defined baseline for all databases and quickly identifies any drift requiring attention.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4DXgbGGY9JKKs0zgzeLlq3BQmYV82iB01p1vHcr6sBKw340c3aphj72UddNGD7pSm-OOS-l7EFICioJmfCy0wzhubzFc-_5oKhb_JKduukFhzeP594m-z4uD-2I6EL8h1SpBRZrz6DWDhWUIFS6poz9qpNrSrDHWEV2cpKOwL6hN7QEc_9O0Ig0zhmxE/s543/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" border="0" data-original-height="404" data-original-width="543" height="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4DXgbGGY9JKKs0zgzeLlq3BQmYV82iB01p1vHcr6sBKw340c3aphj72UddNGD7pSm-OOS-l7EFICioJmfCy0wzhubzFc-_5oKhb_JKduukFhzeP594m-z4uD-2I6EL8h1SpBRZrz6DWDhWUIFS6poz9qpNrSrDHWEV2cpKOwL6hN7QEc_9O0Ig0zhmxE/w640-h476/5.png" title="Expanded enterprise-class support with Oracle Audit Vault and Database Firewall Release Update 11 (20.11)" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 5: Security Assessment Drift Chart</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>More updates with AVDF 20.11</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">AVDF 20.11 introduces many other significant enhancements and features to improve your AVDF experience. Some of them are listed below.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Expanding support for tracking before/after values:</b> AVDF currently collects before/after values from Oracle and Microsoft SQL Server databases and helps customers meet compliance requirements where they need to track the value change. AVDF 20.11 now extends the same before/after value change auditing support for MySQL, helping customers meet their compliance requirements for MySQL database also.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Finely scoped database firewall policies and reports:</b> Until now, Database Firewall (DBFW) policies and reports were based on command groups such as DML, DDL, and DCL, and customers could not easily create policies on just a specific command. With AVDF 20.11, the command class has been expanded to commands such as DELETE, INSERT, UPDATE, DROP TABLE, etc. This enhancement helps you define narrow alert conditions and create unified reports – irrespective of whether the event data was from the audit logs or network-based SQL. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Use of global sets in all activity and GDPR reports:</b> Until now, global sets of IP addresses, OS/DB users, sensitive objects, privileged users, and client programs have been used across Database Firewall policies, making it easier to apply the same rules. Starting in AVDF 20.11, you can now apply the same global set to filter all activity reports, including the compliance reports. For example, in GDPR compliance reports, you can use sensitive object sets to view user activity on sensitive data.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Audit trail migration:</b> Customers have requested easy ways to migrate their audit trails to different agents due to aging agent hardware or the need for improved load balancing across agents. AVDF 20.11 provides flexibility to migrate the audit trail from one agent to another or agentless configuration and vice versa without losing any audit data and restarting the agent/trail. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>AVDF certificate rotation from UI:</b> AVDF uses certificates for internal communication among various services. The current process was lengthy and only partially automated. Now, with 20.11, you can have a clear picture of the certificate validity status from the AVDF console, and you can rotate these certificates with a single click when needed.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-38075038221464318902024-03-06T13:41:00.006+05:302024-03-06T13:41:50.260+05:30Announcing the general availability of Oracle Globally Distributed Autonomous Database<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfLKPrrNaSIek53ajeDDlzia_Tm2hz6ymcXEAHzY_Ps11kPUOl_zd_-EjJbRZj2fZnJUCalM8tGJv1DbmzRXapNN6S_fqF_6lKkr6ns1iQMIt2DN3834h2VmEgWytkvyqCf_EzkvgZo3_sdkj6uvaEYkH32oytzsAnTE5FeS4BAQbfByjDgPsOS0fOI08/s1200/Announcing%20the%20general%20availability%20of%20Oracle%20Globally%20Distributed%20Autonomous%20Databas.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the general availability of Oracle Globally Distributed Autonomous Database" border="0" data-original-height="628" data-original-width="1200" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfLKPrrNaSIek53ajeDDlzia_Tm2hz6ymcXEAHzY_Ps11kPUOl_zd_-EjJbRZj2fZnJUCalM8tGJv1DbmzRXapNN6S_fqF_6lKkr6ns1iQMIt2DN3834h2VmEgWytkvyqCf_EzkvgZo3_sdkj6uvaEYkH32oytzsAnTE5FeS4BAQbfByjDgPsOS0fOI08/w640-h334/Announcing%20the%20general%20availability%20of%20Oracle%20Globally%20Distributed%20Autonomous%20Databas.png" title="Announcing the general availability of Oracle Globally Distributed Autonomous Database" width="640" /></a></div><div style="text-align: center;"><br /></div><div>Today, we have the pleasure of announcing the general availability of the Oracle Globally Distributed Autonomous Database. This fully managed Oracle Cloud Infrastructure (OCI) service is available in data centers around the world. Built-in, cutting-edge capabilities redefine how enterprises manage and process distributed data to achieve the highest possible levels of scalability and availability, and provide data sovereignty features. And, with Autonomous Database’s automated management and ease of use you don’t need to have an extensive staff of experts to take advantage of the power of a distributed database.</div><div><br /></div><div>The Oracle Globally Distributed Autonomous Database simplifies the deployment and management of distributed databases. It provides transparent access for applications using these databases by automatically placing data in the appropriate location. The addition of distributed database capabilities on top of the proven SQL capabilities of Oracle Database enables customers to immediately benefit from decades of innovation in performance optimization, RAC parallel clusters, converged database architecture, and security.</div><div><br /></div><h3 style="text-align: left;"><b>Why Use Oracle’s Globally Distributed Autonomous Database</b></h3><div><br /></div><div>Oracle Globally Distributed Autonomous Database is designed to address global enterprises’ needs for high levels of performance and availability, and data sovereignty. It makes it easier for organizations to run critical distributed databases that use all types of data with high performance and availability. It is ideal for a wide range of applications including payment processing, credit card fraud detection, personalized marketing, mobile messaging, internet infrastructure, and the Internet of Things (IoT).</div><div><br /></div><div>Let's explore some of the key capabilities.</div><div><br /></div><div><b>High Availability:</b> Oracle's Globally Distributed Autonomous Database splits a single logical database into multiple physical databases (called shards) that are distributed across multiple data centers, availability domains, or regions. Faults in one shard do not affect others, enhancing overall availability. Automatic replication of shards across domains or regions provides protection from outages. The Oracle Globally Distributed Autonomous Database runs on fault-tolerant Exadata infrastructure for the highest possible availability.</div><div><br /></div><div><b>Horizontal Scalability: </b>Organizations can scale Globally Distributed Autonomous Database horizontally by adding servers and their associated database shards online and without interrupting database operations. Data and accesses are automatically redistributed to maintain a consistently balanced workload. The database infrastructure scales from multi-terabyte to multi-petabyte levels, addressing the requirements of the most demanding applications. In addition, each Globally Distributed Autonomous Database shard runs on an Exadata platform in OCI, providing high levels of vertically scaled performance that can automatically increase to meet local demand or scaled down to help reduce costs.</div><div><br /></div><div><b>Data Sovereignty</b>: Organizations can specify where data is stored using a choice of customer-defined data placement policies. Updates are automatically inserted into database shards in the correct location based on these policies.</div><div><br /></div><div><b>Choice of Data Distribution Methods: </b>Globally Distributed Autonomous Database offers extensive control over how data is distributed across shards. Unlike other databases with limited methods, we support value-based, system-managed consistent hash, user-defined, duplicated, and partitioned distribution within shards, as well as allowing flexible combinations.</div><div><br /></div><div><b>Autonomous Management: </b>This service brings the advanced, ML-driven capabilities of Autonomous Database to distributed databases with automatic database patching, security, tuning, and performance scaling within shards. The service combines vertical and horizontal scalability to achieve optimum levels on demand.</div><div><br /></div><div><b>AI: </b>Autonomous Database Select AI is also supported, letting users access their distributed databases using LLM-enabled natural language queries without having to know how data is structured or where it is located.</div><div><br /></div><div><b>Simple Application Development: </b>The Globally Distributed Autonomous Database offers a unified logical database view to applications. Its cloud-native capabilities and support for Oracle Database’ rich feature set provide the ideal platform for modern applications. Automated and transparent data distribution and access simplify the development of distributed applications.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrj3bdBl9x6sC_w82ZWRTGGiN8TWUM7x1LURzyF-UhzDZVQMv6d5ce_begYR4cEr_nzS1jmrNpOy9o2O-P0hsUYRp8mDrpwXe3LZIJESmz-NSFFWdah7-YHi53oswdMFbXXIkPfk1YN728k2lVPOI6qdG8YRjIwmLwqGL1C7hNjxvVtndRT7296EbuH0w/s1400/GDADB_25Jan2024_I.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Announcing the general availability of Oracle Globally Distributed Autonomous Database" border="0" data-original-height="710" data-original-width="1400" height="324" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrj3bdBl9x6sC_w82ZWRTGGiN8TWUM7x1LURzyF-UhzDZVQMv6d5ce_begYR4cEr_nzS1jmrNpOy9o2O-P0hsUYRp8mDrpwXe3LZIJESmz-NSFFWdah7-YHi53oswdMFbXXIkPfk1YN728k2lVPOI6qdG8YRjIwmLwqGL1C7hNjxvVtndRT7296EbuH0w/w640-h324/GDADB_25Jan2024_I.gif" title="Announcing the general availability of Oracle Globally Distributed Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Oracle Globally Distributed Autonomous Database</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><h3 style="clear: both; text-align: left;"><b>Oracle Globally Distributed Autonomous Database can help you:</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">◉ Achieve hyperscale performance for transaction processing and mixed workloads</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">◉ Address data sovereignty requirements for distributed data warehousing and data lakes</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">◉ Deploy concurrent data pipelines and machine learning analytics</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">◉ Provide maximum availability for mission-critical applications</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">◉ Build cloud-native, scalable applications</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Pricing</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Globally Distributed Autonomous Database is priced based on the number of shards being used and the amount of database consumption on each shard. Our pricing is simple and predictable. You can find our pricing for the service at https://www.oracle.com/autonomous-database/distributed-autonomous-database/pricing/</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>The Future of Distributed Data Management is Here!</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle’s Globally Distributed Autonomous Database is a powerful and easy-to-use service designed to help you meet your diverse data needs. Whether it's enabling data residency, achieving extreme availability, managing massive scale, or delivering high performance with low local-access latency for global users, this service has you covered. If you're seeking a fully managed distributed database service, we invite you to experience the capabilities of Globally Distributed Autonomous Database. Explore the next era of data management and elevate your data operations.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-89308875725132262112024-03-04T13:09:00.007+05:302024-03-04T13:31:53.360+05:30Oracle Fusion Analytics - Refresh Materialized Views via Custom Function After Pipeline Completion<h3 style="text-align: left;"><b>Introduction</b></h3><div><br /></div><div>Oracle Fusion Data Intelligence Platform (FDIP, formerly Fusion Analytics Warehouse ) is an Oracle Cloud Infrastructure (OCI) native service that leverages the power of <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html">Oracle Autonomous Data Warehouse (ADW) and Oracle Analytics Cloud (OAC)</a></b>. It provides a comprehensive analytics solution that includes a data pipeline, data warehouse, semantic model, and pre-built content such as dashboards and reports.</div><div><br /></div><div>As businesses expand and develop, the importance of automation in managing data and analytics applications also grows. Based on user input, Oracle has delivered in Preview the Fusion Analytics Event Producer service, giving you more control over tracking customized events and notifications. This service is an effective automated solution for creating consolidated events and notification workflows that can streamline your Fusion Analytics business operations.<span><a name='more'></a></span></div><div><br /></div><h3 style="text-align: left;"><b>Example Description</b></h3><div><br /></div><div>The purpose of this example is to provide instructions for creating a custom OCI function that the Fusion Analytics pipeline complete event triggers as an action. The custom function calls an Oracle Rest Data Services (ORDS) URL, which executes a PL/SQL procedure in the database for Fusion Analytics to refresh all materialized views in the OAX_USER schema.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlth0o9NQpu8FJRK0Xhw96ZaNlqVaD5rxl0EQiSsPWj5bLBUxS4KncPdHjC04Ojj-0aJkzJgCXttxJMFxeOxoucwf3HVNCVAmehQ0V74WZ2CxwJIVmajjibkqifhYO369G0ncx7hfCPmSk-hQcasvojRKE55yGnxtXCiVKQO5pMrEUhtQR-X8NroVOWRA/s1024/1.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Fusion Analytics - Refresh Materialized Views via Custom Function After Pipeline Completion" border="0" data-original-height="173" data-original-width="1024" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlth0o9NQpu8FJRK0Xhw96ZaNlqVaD5rxl0EQiSsPWj5bLBUxS4KncPdHjC04Ojj-0aJkzJgCXttxJMFxeOxoucwf3HVNCVAmehQ0V74WZ2CxwJIVmajjibkqifhYO369G0ncx7hfCPmSk-hQcasvojRKE55yGnxtXCiVKQO5pMrEUhtQR-X8NroVOWRA/w640-h108/1.png" title="Oracle Fusion Analytics - Refresh Materialized Views via Custom Function After Pipeline Completion" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Prerequisites</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Ensure that you've completed the following before undertaking this example:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. Download the fn project repository to your development environment (https://github.com/fnproject/fn.git).</div><div class="separator" style="clear: both;">2. Prepare the environment for function development using Function QuickStart Guides available here:</div><div class="separator" style="clear: both;">https://docs.oracle.com/en-us/iaas/Content/Functions/Tasks/functionsquickstartguidestop.htm</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Create the Application</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Change the subnet id for your subnet with a command such as the following one:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">fn create app --annotation oracle.com/oci/subnetIds='["ocid1.subnet.oc1.iad..."]' faw-mview-demo</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Obtain the List of Applications</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Assuming you have successfully completed the prerequisites, enter the following command to see your application in the list of applications:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">fn ls apps</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Create the Refresh Mviews Procedure</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">As OAX_USER in your database for Fusion Analytics, create the refresh_mviews procedure. This procedure loops through the names of all materialized views in the OAX_USER schema and refreshes each of them one at a time. You can update this script to handle any ordering or to specify that certain materialized views are refreshed.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">CREATE OR REPLACE PROCEDURE oax_user.refresh_mviews (</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> result OUT VARCHAR2</div><div class="separator" style="clear: both;">) AS</div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> FOR i IN (</div><div class="separator" style="clear: both;"> SELECT</div><div class="separator" style="clear: both;"> mview_name</div><div class="separator" style="clear: both;"> FROM</div><div class="separator" style="clear: both;"> user_mviews</div><div class="separator" style="clear: both;"> ) LOOP</div><div class="separator" style="clear: both;"> dbms_mview.refresh(i.mview_name);</div><div class="separator" style="clear: both;"> END LOOP;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> result := 'Materialized Views Refreshed Successfully!';</div><div class="separator" style="clear: both;">EXCEPTION</div><div class="separator" style="clear: both;"> WHEN OTHERS THEN</div><div class="separator" style="clear: both;"> htp.print(sqlerrm);</div><div class="separator" style="clear: both;"> result := 'Materialized View Refresh Error, check logs!';</div><div class="separator" style="clear: both;">END refresh_mviews;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">set serveroutput on</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">DECLARE</div><div class="separator" style="clear: both;"> result VARCHAR2(200);</div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> refresh_mviews(result);</div><div class="separator" style="clear: both;"> dbms_output.put_line(result);</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;">/</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You should see a message that reads: "Materialized Views Refreshed Successfully!"</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You can also check the last_refresh_end_time in the user_mviews view using a command such as the following:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">select mview_name, to_char(last_refresh_end_time, 'dd-mon-yyyy hh24:mi:ss') from user_mviews;</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Enable Oracle Rest Data Services (ORDS) for OAX_USER and the refresh_mviews Procedure</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">As an administrator in your database for Fusion Analytics, use the following code for these tasks:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. Enable OAX_USER for ORDS.</div><div class="separator" style="clear: both;">2. Create a module, template, and handler for the refresh_mviews procedure to create the ORDS URL that the function will call via a https request.</div><div class="separator" style="clear: both;">3. Define a response parameter to output the result of the procedure (that is, a success or failure message).</div><div class="separator" style="clear: both;">4. Create a role and privilege for OAUTH2.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">DECLARE</div><div class="separator" style="clear: both;"> l_roles OWA.VC_ARR;</div><div class="separator" style="clear: both;"> l_modules OWA.VC_ARR;</div><div class="separator" style="clear: both;"> l_patterns OWA.VC_ARR;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> ORDS.ENABLE_SCHEMA(</div><div class="separator" style="clear: both;"> p_enabled => TRUE,</div><div class="separator" style="clear: both;"> p_schema => 'OAX_USER',</div><div class="separator" style="clear: both;"> p_url_mapping_type => 'BASE_PATH',</div><div class="separator" style="clear: both;"> p_url_mapping_pattern => 'oax_user',</div><div class="separator" style="clear: both;"> p_auto_rest_auth => FALSE);</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS.DEFINE_MODULE(</div><div class="separator" style="clear: both;"> p_module_name => 'mview',</div><div class="separator" style="clear: both;"> p_base_path => '/mview/',</div><div class="separator" style="clear: both;"> p_items_per_page => 25,</div><div class="separator" style="clear: both;"> p_status => 'PUBLISHED',</div><div class="separator" style="clear: both;"> p_comments => NULL);</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS.DEFINE_TEMPLATE(</div><div class="separator" style="clear: both;"> p_module_name => 'mview',</div><div class="separator" style="clear: both;"> p_pattern => 'refresh/',</div><div class="separator" style="clear: both;"> p_priority => 0,</div><div class="separator" style="clear: both;"> p_etag_type => 'HASH',</div><div class="separator" style="clear: both;"> p_etag_query => NULL,</div><div class="separator" style="clear: both;"> p_comments => NULL);</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS.DEFINE_HANDLER(</div><div class="separator" style="clear: both;"> p_module_name => 'mview',</div><div class="separator" style="clear: both;"> p_pattern => 'refresh/',</div><div class="separator" style="clear: both;"> p_method => 'POST',</div><div class="separator" style="clear: both;"> p_source_type => 'plsql/block',</div><div class="separator" style="clear: both;"> p_items_per_page => 25,</div><div class="separator" style="clear: both;"> p_mimes_allowed => NULL,</div><div class="separator" style="clear: both;"> p_comments => NULL,</div><div class="separator" style="clear: both;"> p_source =></div><div class="separator" style="clear: both;">'DECLARE</div><div class="separator" style="clear: both;"> P_RESULT VARCHAR2(200);</div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> REFRESH_MVIEWS(p_result);</div><div class="separator" style="clear: both;">:result := p_result;</div><div class="separator" style="clear: both;">END;');</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS.DEFINE_PARAMETER(</div><div class="separator" style="clear: both;"> p_module_name => 'mview',</div><div class="separator" style="clear: both;"> p_pattern => 'refresh/',</div><div class="separator" style="clear: both;"> p_method => 'POST',</div><div class="separator" style="clear: both;"> p_name => 'result',</div><div class="separator" style="clear: both;"> p_bind_variable_name => 'result',</div><div class="separator" style="clear: both;"> p_source_type => 'RESPONSE',</div><div class="separator" style="clear: both;"> p_param_type => 'STRING',</div><div class="separator" style="clear: both;"> p_access_method => 'OUT',</div><div class="separator" style="clear: both;"> p_comments => NULL);</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS.CREATE_ROLE(p_role_name => 'oracle.dbtools.role.OAX_USER.REFRESH_MVIEWS');</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> l_roles(1) := 'OAuth Client Developer';</div><div class="separator" style="clear: both;"> l_roles(2) := 'RESTful Services';</div><div class="separator" style="clear: both;"> l_roles(3) := 'oracle.dbtools.role.OAX_USER.REFRESH_MVIEWS';</div><div class="separator" style="clear: both;"> l_modules(1) := 'mview';</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS.DEFINE_PRIVILEGE(</div><div class="separator" style="clear: both;"> p_privilege_name => 'oracle.dbtools.privilege.OAX_USER.MVIEW_REFRESH',</div><div class="separator" style="clear: both;"> p_roles => l_roles,</div><div class="separator" style="clear: both;"> p_patterns => l_patterns,</div><div class="separator" style="clear: both;"> p_modules => l_modules,</div><div class="separator" style="clear: both;"> p_label => 'mview_refresh',</div><div class="separator" style="clear: both;"> p_description => 'Privilege for module mview_refresh',</div><div class="separator" style="clear: both;"> p_comments => NULL);</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> l_roles.DELETE;</div><div class="separator" style="clear: both;"> l_modules.DELETE;</div><div class="separator" style="clear: both;"> l_patterns.DELETE;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">COMMIT;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;">/</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Create the OAUTH User and Grant Roles and Privileges</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">As an administrator in your database for Fusion Analytics, create the OAUTH client user and grant roles and privileges for ORDS using OAUTH with code such as the following.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> OAUTH.CREATE_CLIENT(</div><div class="separator" style="clear: both;"> P_NAME => 'Materialized View Refresh Client',</div><div class="separator" style="clear: both;"> P_GRANT_TYPE => 'client_credentials',</div><div class="separator" style="clear: both;"> P_OWNER => 'OAX_USER',</div><div class="separator" style="clear: both;"> P_DESCRIPTION => 'Client Used to Refresh Materialized Views after Fusion Analytics pipeline completes',</div><div class="separator" style="clear: both;"> P_ORIGINS_ALLOWED => '',</div><div class="separator" style="clear: both;"> P_REDIRECT_URI => '',</div><div class="separator" style="clear: both;"> P_SUPPORT_EMAIL => 'support@example.com',</div><div class="separator" style="clear: both;"> P_SUPPORT_URI => 'https://www.example.com',</div><div class="separator" style="clear: both;"> P_PRIVILEGE_NAMES => 'oracle.dbtools.privilege.OAX_USER.MVIEW_REFRESH'</div><div class="separator" style="clear: both;"> );</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS_METADATA.OAUTH.GRANT_CLIENT_ROLE(</div><div class="separator" style="clear: both;"> p_client_name => 'Materialized View Refresh Client',</div><div class="separator" style="clear: both;"> p_role_name => 'OAuth2 Client Developer'); </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS_METADATA.OAUTH.GRANT_CLIENT_ROLE(</div><div class="separator" style="clear: both;"> p_client_name => 'Materialized View Refresh Client',</div><div class="separator" style="clear: both;"> p_role_name => 'RESTful Services'); </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> ORDS_METADATA.OAUTH.GRANT_CLIENT_ROLE(</div><div class="separator" style="clear: both;"> p_client_name => 'Materialized View Refresh Client',</div><div class="separator" style="clear: both;"> p_role_name => 'oracle.dbtools.role.OAX_USER.REFRESH_MVIEWS'); </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> COMMIT;</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;">/</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">As OAX_USER, find the client_id and client_secret for the user you just created with commands such as the following ones:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">select id, name, client_id, client_secret</div><div class="separator" style="clear: both;">from user_ords_clients</div><div class="separator" style="clear: both;">where name = 'Materialized View Refresh Client';</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Update Your Application with client_id and client_secret</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Update your application with the client_id and client_secret from the code shown earlier in this article:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">fn config app faw-mview-demo clientId abc..</div><div class="separator" style="clear: both;">fn config app faw-mview-demo clientSecret xyz..</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Always encrypt any configuration variables that contain sensitive information.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Find the ordsBaseURL</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Log into the Oracle Cloud Console, select Oracle Database, select Oracle Autonomous Database, and select the database for Fusion Analytics.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In the Autonomous Database Console, select Database actions, then REST.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsS8UuCgPDDyfm7C4HG6ffEzmEy_mg4C64UZ6P-JEDYPtuoPSQfYE3pnwg-tnuNRT2Acfsgcdnx-KJPZsu_IRTTEV8Z03jtA20HxVDvdzudM_PWx8LC0GOaJr5lAxAHz33BpImNA9ta6RmSL_XBq7xbQCk5hdy_YHw_HozfffpJ-EoHU8uwsJv9XEFQA8/s1024/2.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Fusion Analytics - Refresh Materialized Views via Custom Function After Pipeline Completion" border="0" data-original-height="339" data-original-width="1024" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsS8UuCgPDDyfm7C4HG6ffEzmEy_mg4C64UZ6P-JEDYPtuoPSQfYE3pnwg-tnuNRT2Acfsgcdnx-KJPZsu_IRTTEV8Z03jtA20HxVDvdzudM_PWx8LC0GOaJr5lAxAHz33BpImNA9ta6RmSL_XBq7xbQCk5hdy_YHw_HozfffpJ-EoHU8uwsJv9XEFQA8/w640-h212/2.png" title="Oracle Fusion Analytics - Refresh Materialized Views via Custom Function After Pipeline Completion" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">The rest-workshop URL looks similar to the following:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">https://[random chars]-oax[numbers].adb.us-ashburn-1.oraclecloudapps.com/ords/admin/rest_workshop</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">To obtain ordsBaseUrl, copy everything before the word admin and change admin to oax_user:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">https://[random chars]-oax[numbers].adb.us-ashburn-1.oraclecloudapps.com/ords/oax_user/</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This is the base URL for the ORDS services in the oax_user schema.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Create the Custom Java Function</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Use commands such as the following to create a "hello world" java function.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">fn init --runtime java faw-mview-demo-fn</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">cd faw-mview-demo-fn/src/main/java/com/example/fn</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">mv HelloFunction.java RefreshMview.java</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Update the Code</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Replace the HelloFunction.java code in the RefreshMvew.java file with this code and modify the ordsBaseUrl with your URL from earlier in this article:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">package com.example.fn;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">import com.fasterxml.jackson.core.type.TypeReference;</div><div class="separator" style="clear: both;">import com.fasterxml.jackson.databind.ObjectMapper;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">import java.lang.String;</div><div class="separator" style="clear: both;">import java.io.IOException;</div><div class="separator" style="clear: both;">import java.net.HttpURLConnection;</div><div class="separator" style="clear: both;">import java.net.URI;</div><div class="separator" style="clear: both;">import java.net.URISyntaxException;</div><div class="separator" style="clear: both;">import java.net.http.HttpClient;</div><div class="separator" style="clear: both;">import java.net.http.HttpRequest;</div><div class="separator" style="clear: both;">import java.net.http.HttpResponse;</div><div class="separator" style="clear: both;">import java.util.*;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">public class RefreshMview {</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> private final String ordsBaseUrl = "https://xxxxx-oax123.adb.us-ashburn-1.oraclecloudapps.com/ords/oax_user";</div><div class="separator" style="clear: both;"> private final HttpClient httpClient = HttpClient.newHttpClient();</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> public static class Mview {</div><div class="separator" style="clear: both;"> public String result;</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> public Mview handleRequest() {</div><div class="separator" style="clear: both;"> Mview mview = null;</div><div class="separator" style="clear: both;"> try {</div><div class="separator" style="clear: both;"> HttpRequest request = HttpRequest.newBuilder( new URI( this.ordsBaseUrl + "/mview/refresh/" ) )</div><div class="separator" style="clear: both;"> .header("Authorization", "Bearer " + getAuthToken())</div><div class="separator" style="clear: both;"> .POST(HttpRequest.BodyPublishers.noBody())</div><div class="separator" style="clear: both;"> .build();</div><div class="separator" style="clear: both;"> HttpResponse<String> response = this.httpClient.send(request, HttpResponse.BodyHandlers.ofString());</div><div class="separator" style="clear: both;"> String responseBodyOutput = response.body();</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> if( response.statusCode() == HttpURLConnection.HTTP_NOT_FOUND ) {</div><div class="separator" style="clear: both;"> System.out.println("URL not found!");</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"> else {</div><div class="separator" style="clear: both;"> mview = new ObjectMapper().readValue(responseBodyOutput, Mview.class);</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"> catch (URISyntaxException | IOException | InterruptedException e) {</div><div class="separator" style="clear: both;"> e.printStackTrace();</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;">return mview;</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> private String getAuthToken() {</div><div class="separator" style="clear: both;"> String authToken = "";</div><div class="separator" style="clear: both;"> try {</div><div class="separator" style="clear: both;"> Map<String, String> env = System.getenv();</div><div class="separator" style="clear: both;"> for (String envName : env.keySet()) {</div><div class="separator" style="clear: both;"> System.out.format("%s=%s%n", envName, env.get(envName));</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"> String clientId = System.getenv().get("clientId");</div><div class="separator" style="clear: both;"> String clientSecret = System.getenv().get("clientSecret");</div><div class="separator" style="clear: both;"> String authString = clientId + ":" + clientSecret;</div><div class="separator" style="clear: both;"> String authEncoded = "Basic " + Base64.getEncoder().encodeToString(authString.getBytes());</div><div class="separator" style="clear: both;"> HttpRequest request = HttpRequest.newBuilder(new URI(this.ordsBaseUrl + "/oauth/token"))</div><div class="separator" style="clear: both;"> .header("Authorization", authEncoded)</div><div class="separator" style="clear: both;"> .header("Content-Type", "application/x-www-form-urlencoded")</div><div class="separator" style="clear: both;"> .POST(HttpRequest.BodyPublishers.ofString("grant_type=client_credentials"))</div><div class="separator" style="clear: both;"> .build();</div><div class="separator" style="clear: both;"> HttpResponse<String> response = this.httpClient.send(request, HttpResponse.BodyHandlers.ofString());</div><div class="separator" style="clear: both;"> String responseBody = response.body();</div><div class="separator" style="clear: both;"> ObjectMapper mapper = new ObjectMapper();</div><div class="separator" style="clear: both;"> TypeReference<HashMap<String, String>> typeRef = new TypeReference<HashMap<String, String>>() {};</div><div class="separator" style="clear: both;"> HashMap<String, String> result = mapper.readValue(responseBody, typeRef);</div><div class="separator" style="clear: both;"> authToken = result.get("access_token");</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"> catch (URISyntaxException | IOException | InterruptedException e) {</div><div class="separator" style="clear: both;"> e.printStackTrace();</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;"> return authToken;</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;">}</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Update the Test Java Function</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Use code such as the following to update the test java function:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">cd faw-mview-demo-fn/src/test/java/com/example/fn</div><div class="separator" style="clear: both;">mv HelloFunction.java RefreshMviewTest.java</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In RefreshMviewTest.java, replace the HelloFunctionTest.java code with the following:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">package com.example.fn;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">import com.fnproject.fn.testing.FnResult;</div><div class="separator" style="clear: both;">import com.fnproject.fn.testing.FnTestingRule;</div><div class="separator" style="clear: both;">import org.junit.Rule;</div><div class="separator" style="clear: both;">import org.junit.Test;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">import static org.junit.Assert.assertEquals;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">public class RefreshMviewTest {</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> @Rule</div><div class="separator" style="clear: both;"> public final FnTestingRule testing = FnTestingRule.createDefault();</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> @Test</div><div class="separator" style="clear: both;"> public void shouldReturnUser() {</div><div class="separator" style="clear: both;"> testing.givenEvent().withBody("result").enqueue();</div><div class="separator" style="clear: both;"> testing.thenRun(RefreshMview.class, "handleRequest");</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> FnResult fnresult = testing.getOnlyResult();</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> assertEquals("{\"result\":\"Materialized Views Refreshed Successfully!\"}",fnresult.getBodyAsString());</div><div class="separator" style="clear: both;"> }</div><div class="separator" style="clear: both;">}</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Update the Dockerfile</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Use code such as the following to update the Dockerfile by first copying it:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">cd fn</div><div class="separator" style="clear: both;">cp Dockerfile Dockerfile.orig</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Update it with the following code:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">FROM fnproject/fn-java-fdk-build:jre17-1.0.178 as build-stage</div><div class="separator" style="clear: both;">WORKDIR /function</div><div class="separator" style="clear: both;">ENV MAVEN_OPTS -Dhttp.proxyHost= -Dhttp.proxyPort= -Dhttps.proxyHost= -Dhttps.proxyPort= -Dhttp.nonProxyHosts= -Dmaven.repo.local=/usr/share/maven/ref/repository</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">ADD pom.xml /function/pom.xml</div><div class="separator" style="clear: both;">RUN ["mvn", "package", "dependency:copy-dependencies", "-DincludeScope=runtime", "-DskipTests=true", "-Dmdep.prependGroupId=true", "-DoutputDirectory=target", "--fail-never"]</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">ADD src /function/src</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">RUN ["mvn", "package", "-DskipTests=true"]</div><div class="separator" style="clear: both;">FROM fnproject/fn-java-fdk:jre17-1.0.178</div><div class="separator" style="clear: both;">WORKDIR /function</div><div class="separator" style="clear: both;">COPY --from=build-stage /function/target/*.jar /function/app/</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">CMD ["com.example.fn.RefreshMview::handleRequest"]</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Add a Dependency Section to the pom.xml File</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Use code such as the following to add the section:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> <dependency></div><div class="separator" style="clear: both;"> <groupId>com.fasterxml.jackson.core</groupId></div><div class="separator" style="clear: both;"> <artifactId>jackson-databind</artifactId></div><div class="separator" style="clear: both;"> <version>2.9.9</version></div><div class="separator" style="clear: both;"> <scope>compile</scope></div><div class="separator" style="clear: both;"> </dependency></div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Update the func.yaml File</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Use code such as the following to update the file:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">schema_version: 20180708</div><div class="separator" style="clear: both;">name: faw-mview-demo-fn</div><div class="separator" style="clear: both;">version: 0.0.39</div><div class="separator" style="clear: both;">runtime: java</div><div class="separator" style="clear: both;">build_image: fnproject/fn-java-fdk-build:jdk17-1.0.178</div><div class="separator" style="clear: both;">run_image: fnproject/fn-java-fdk:jre17-1.0.178</div><div class="separator" style="clear: both;">cmd: com.example.fn.RefreshMview::handleRequest</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Test the Building of the Function</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Use code such as the following to test the building of the function:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">fn build -v faw-mview-demo-fn</div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Deploy the Function</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Use code such as the following to deploy the function after building it:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">fn invoke faw-mview-demo faw-mview-demo-fn</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You see a message such as the following:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">{"result":"Materialized Views Refreshed Successfully!"}</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>In the UI, Subscribe to the Topic with Action for your Function Name</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">When the function works properly from the command line, subscribe to the topic with action and your function name:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. Log in to the Fusion Analytics Console, select Enable Features, and enable Event Notification.</div><div class="separator" style="clear: both;">2. Log in to the Oracle Cloud Infrastructure Console, select Developer Services, Notifications and create a topic for “Fusion Analytics Data Load Complete."</div><div class="separator" style="clear: both;">3. Subscribe to the topic with your email address.</div><div class="separator" style="clear: both;">4. Create an Event Service Matching Rule for the Oracle Analytics, DataRefresh - Complete event. Choose Attribute, resourceName: select your Fusion Analytics instance name.</div><div class="separator" style="clear: both;">5. Create an Action, Action Type: Function, select your Function Application Name and Function Name.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Troubleshooting Tips</b></h3><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>Verify the refresh time in the database, in SQL Developer as OAX_USER:</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">select sys_context('USERENV', 'SERVICE_NAME'),mview_name, to_char(last_refresh_end_time, 'dd-mon-yyyy hh24:mi:ss') from user_mviews;</div><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>Verify you can manually refresh them by executing the procedure and rechecking the refresh date and time:</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">set serveroutput on</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">DECLARE</div><div class="separator" style="clear: both;"> result VARCHAR2(200);</div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> refresh_mviews(result);</div><div class="separator" style="clear: both;"> dbms_output.put_line(result);</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;">/</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">select sys_context('USERENV', 'SERVICE_NAME'),mview_name, to_char(last_refresh_end_time, 'dd-mon-yyyy hh24:mi:ss') from user_mviews;</div><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>Test obtaining a token for your clientId and secret from ORDS:</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Change the clientId and clientSecret to the value of your client_id and client_secret that was specified earlier in this article. Change the URL to your ORDS baseURL. Keep the oax_user/auth/token portion of the URL shown here..</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">curl -v \</div><div class="separator" style="clear: both;">--user "clientId:clientSecret" \</div><div class="separator" style="clear: both;">--data "grant_type=client_credentials" \</div><div class="separator" style="clear: both;">https://[random-chars]-oax[numbers].adb.us-ashburn-1.oraclecloudapps.com/ords/oax_user/oauth/token</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This provides a bearer token that you can use to call the ORDS URL directly. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">{"access_token":"xeU123","token_type":"bearer","expires_in":3600}</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Test the ORDS URL to refresh your materialized views using bearer token:</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> curl -X 'POST' \</div><div class="separator" style="clear: both;"> 'https://[random-chars]-oax[numbers].adb.us-ashburn-1.oraclecloudapps.com/ords/oax_user/mview/refresh/' \</div><div class="separator" style="clear: both;"> -H 'Authorization: Bearer xeU123' \</div><div class="separator" style="clear: both;"> -d '' | jq</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You see a message such as the following:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">{"result":"Materialized Views Refreshed Successfully!"}</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Enable logging for the application</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In the Oracle Cloud Console, navigate to Developer Services, Applications, Functions, Logs, Enable Logs.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Invoke the function with DEBUG option:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">DEBUG=1;fn invoke faw-mview-demo faw-mview-demo-fn</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Review the log to resolve errors.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-79112492838893789702024-03-01T11:14:00.000+05:302024-03-01T11:14:02.917+05:30Best Practices For Implementing Row-Level Security In Oracle Analytics<div>It’s intended for Model Administrators who are using row-level security filters and covers row-level security which has “or logic” and uses empty values when a part of the filter is not applicable. Many businesses have security constraints involving different dimensions for different groups of users and for combinations of them. The simplest implementation will apply filters for all possibilities and use an empty value for dimensions that do not apply to the specific user. The correct results are obtained, but the SQL contains extra tables that are not used, which can negatively impact performance. This post explains how to get <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html">Oracle Analytics</a></b> to dynamically exclude these tables.</div><div><br /></div><h3 style="text-align: left;"><b>Row-Level Security Example</b></h3><div><br /></div><div>There are a couple of parts to setting up table elimination for row-level security. Set up a series of session variables that determine first, when to apply a security filter and second, which security filters to apply.</div><div><br /></div><div>First, set up a series of control session variables that determine whether security should be applied. The session variables are binary and are set to either 1 or 0. 1 means the data is restricted and to use the security session variables; 0 means the data is unrestricted and ignores the security session variables.</div><div><br /></div><div>This example describes setting up security on 4 entities: business hierarchy, country, department, and legal organization.</div><div><br /></div><div>There are 5 control session variables set up, one for turning on security in general, and one to turn on security for each of the entities.</div><div><br /></div><div><b>Control variables:</b></div><div><br /></div><div><ol style="text-align: left;"><li>NQ_SESSION.Data_Security_Restricted – turns security on or off.</li><li>NQ_SESSION.Data_Sec_Control_BH – turns security on or off for the business hierarchy entity.</li><li>NQ_SESSION.Data_Sec_Control_Country – turns security on or off for the country entity.</li><li>NQ_SESSION.Data_Sec_Control_Department – turns security on or off for the department entity.</li><li>NQ_SESSION.Data_Sec_Control_Legal_Org – turns security on or off for the legal organization entity.</li></ol></div><div><br /></div><div>After that, set up security session variables for each entity that contains restricted data. These variables contain the values of the security filters to be passed to report filters.</div><div><br /></div><div><b>Security filter variables:</b></div><div><br /></div><div><ol style="text-align: left;"><li>NQ_SESSION.Data_Security_BH – sets the security filter for the business hierarchy entity.</li><li>NQ_SESSION.Data_Security_Country – sets the security filter for the country entity.</li><li>NQ_SESSION.Data_Security_Department – sets the security filter for the department entity.</li><li>NQ_SESSION.Data_Security_Legal_Org – sets the security filter for the legal organization entity.</li></ol></div><div><br /></div><div>You will want to pay attention to the underlying datatypes, as they determine the format of the value of the session variable. In this case, business hierarchy and legal organization are integers, while country and department are character strings. The value of the session variable is the actual value of the entity to be passed to the filter.</div><div><br /></div><div>To help understand how the control variables and the indexcol function work, let's review an example in which security is set only for department, and the control variables and indexcol function are not used. The row-level filter is shown below:</div><div><br /></div><div>"Core"."Dim - Business Hierarchy"."Business Hierarchy Identifier" = VALUEOF(NQ_SESSION."Data_Security_BH")</div><div>OR "Core"."Dim - Country"."Country Name" = VALUEOF(NQ_SESSION."Data_Security_Country")</div><div>OR "Core"."Dim - Legal Org"."Legal Org Identifier" = VALUEOF(NQ_SESSION."Data_Security_Legal_Org")</div><div>OR "Core"."Dim - Department"."Department Name" = VALUEOF(NQ_SESSION."Data_Security_Department")</div><div><br /></div><div>The session variables are populated with the list of values the user can access and, if there is no restriction, then the “empty” placeholder value is used.</div><div><br /></div><div>When applied to the sample report below, the security filter is: (with Data_Security_Department = ‘Dept 1’, Data_Security_Country = ‘No Values’, Data_Security_Legal_Org = -1, Data_Security_Department = -1 )</div><div><br /></div><div>SELECT</div><div> 0 s_0,</div><div> "Jobs Analysis"."Grade"."Grade Name" s_1,</div><div> "Jobs Analysis"."Time"."Month Name" s_2,</div><div> "Jobs Analysis"."Time"."Year" s_3,</div><div> DESCRIPTOR_IDOF("Jobs Analysis"."Time"."Month Name") s_4,</div><div> SORTKEY("Jobs Analysis"."Time"."Month Name") s_5,</div><div> "Jobs Analysis"."Facts - Job Counts"."Jobs" s_6</div><div>FROM "Jobs Analysis"</div><div>WHERE</div><div>(("Time"."Year" = 2023) AND ("Time"."Month Name" = 'July'))</div><div>ORDER BY 4 ASC NULLS LAST, 6 ASC NULLS LAST, 3 ASC NULLS LAST, 5 ASC NULLS LAST, 2 ASC NULLS LAST</div><div>FETCH FIRST 500001 ROWS ONLY</div><div><br /></div><div>Here is the SQL generated by the report:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYPaqQ0MitE_Oqy8pWavesAsRFXjAqbM3984w_EDxdIW4z9ZKxrBA3o6rCYP9eM-Dwyns43ZmzjAzfjJJRiwsZgcdZaMdifitrp1VhELlVvuYXt1jUdt9uPGilCMsmKEeWi0d1yJ7MjO2NY3uZJg6RJsZjq3sDidJ17xd5g5POJunTTo-hUyHvhB2RJg/s1024/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Best Practices For Implementing Row-Level Security In Oracle Analytics" border="0" data-original-height="459" data-original-width="1024" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYPaqQ0MitE_Oqy8pWavesAsRFXjAqbM3984w_EDxdIW4z9ZKxrBA3o6rCYP9eM-Dwyns43ZmzjAzfjJJRiwsZgcdZaMdifitrp1VhELlVvuYXt1jUdt9uPGilCMsmKEeWi0d1yJ7MjO2NY3uZJg6RJsZjq3sDidJ17xd5g5POJunTTo-hUyHvhB2RJg/w640-h286/1.png" title="Best Practices For Implementing Row-Level Security In Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">In the sample above, the extra SQL is highlighted. There are 3 tables, DW_BUSINESS_DF_DH, DW_LEGAL_EMPLOYER_D and DW_COUNTRY_D_TL, that are used in the security filter but are not filtering anything. Depending upon the scope of the data in each of the additional tables, the query execution time is going to be higher than if those tables were not included.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">To get those tables eliminated from the query, replace the row-level filter from above with this one:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">INDEXCOL( VALUEOF(NQ_SESSION."Data_Security_Restricted"), '0', '1') = '0' OR INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_BH"), '0', VALUEOF(NQ_SESSION."Data_Security_BH")) = INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_BH"), '1', "Core"."Dim - Business Hierarchy"."Business Hierarchy Identifier") OR INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_Country"), '0', VALUEOF(NQ_SESSION."Data_Security_Country")) = INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_Country"), '1', "Core"."Dim - Country"."Country Name") OR INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_Dept"), '0', VALUEOF(NQ_SESSION."Data_Security_Department")) = INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_Dept"), '1', "Core"."Dim - Department"."Department Name") OR INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_Legal_Org"), '0', VALUEOF(NQ_SESSION."Data_Security_Legal_Org")) = INDEXCOL( VALUEOF(NQ_SESSION."Data_Sec_Control_Legal_Org"), '1', "Core"."Dim - Legal Org"."Legal Org Identifier")</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The SQL now generated by the report will have only the needed tables:</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOX6x42fBhATPWN8FDIev8kwTjgJpURxpGR-2AgHDb8nabl1IojMXJ5x3EXYERxZfFasPTjoEmL-Ecl1aEKx7e_4zkbYPw68XpCoJ6bwg6iZKDC0rmEHXKJFum2-fhonxUdqo5JckSnSflNE0ZJsVgo-XhJUhYLfWcvXL7YJGyN_x5PxlIXRgW8yQLMVU/s1024/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Best Practices For Implementing Row-Level Security In Oracle Analytics" border="0" data-original-height="381" data-original-width="1024" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOX6x42fBhATPWN8FDIev8kwTjgJpURxpGR-2AgHDb8nabl1IojMXJ5x3EXYERxZfFasPTjoEmL-Ecl1aEKx7e_4zkbYPw68XpCoJ6bwg6iZKDC0rmEHXKJFum2-fhonxUdqo5JckSnSflNE0ZJsVgo-XhJUhYLfWcvXL7YJGyN_x5PxlIXRgW8yQLMVU/w640-h238/2.png" title="Best Practices For Implementing Row-Level Security In Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">The key function to use to get these dynamic security filters is the indexcol function. To set up the indexcol function, use the session variables set up in the example and populated with the entity values.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A control initialization block is set up to determine which filters to apply based on the original control variables.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Control initialization block:</b></div><div class="separator" style="clear: both;">select 'Data_Sec_Control_BH', case when (Instr('valueof(NQ_SESSION.Data_Security_BH)','-1')>0) then 0 else 1 end from dual</div><div class="separator" style="clear: both;">union</div><div class="separator" style="clear: both;">select 'Data_Sec_Control_Dept', case when (Instr('valueof(NQ_SESSION.Data_Security_Department)','No Values')>0) then 0 else 1 end from dual</div><div class="separator" style="clear: both;">union</div><div class="separator" style="clear: both;">select 'Data_Sec_Control_Country', case when (Instr('valueof(NQ_SESSION.Data_Security_Country)','No Values')>0) then 0 else 1 end from dual</div><div class="separator" style="clear: both;">union</div><div class="separator" style="clear: both;">select 'Data_Sec_Control_Legal_Org', case when (Instr('valueof(NQ_SESSION.Data_Security_Legal_Org)','-1')>0) then 0 else 1 end from dual</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">It is important to set the precedence property on the control initialization block so it is executed after the initialization blocks that populate the security filter variables. In other words, the security filter variables must be populated before they are used in the control initialization block.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_PtONb0OzHq9KWgqIPzNYcXk9RHXwUo32xJvmpkL6ZLt6MLYE_Ed4l1pre0ECkiVjowxPKgss49JXOIRNPudTPMAiVFGVJTVkH0P63s8mennpOWChokbl8KduaCuPS8BnWBTG1wTrJIzsLoNOkHFKpM-snnaLm7nUCsUJq5eMIXx3Qy1MGk5ewaXFb8/s1024/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Best Practices For Implementing Row-Level Security In Oracle Analytics" border="0" data-original-height="200" data-original-width="1024" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_PtONb0OzHq9KWgqIPzNYcXk9RHXwUo32xJvmpkL6ZLt6MLYE_Ed4l1pre0ECkiVjowxPKgss49JXOIRNPudTPMAiVFGVJTVkH0P63s8mennpOWChokbl8KduaCuPS8BnWBTG1wTrJIzsLoNOkHFKpM-snnaLm7nUCsUJq5eMIXx3Qy1MGk5ewaXFb8/w640-h126/3.png" title="Best Practices For Implementing Row-Level Security In Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Call to Action</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Following these steps will help ensure your row-level security formulas have the best possible performance by eliminating unnecessary filters and tables.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-69487210267649873542024-02-28T10:53:00.003+05:302024-02-28T10:53:42.080+05:30Conversations are the next generation in natural language queries<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj17YBqHOfhV-TVJ2cFQMec9dTtYBPCog4PixuXrsVPlRLJXSOh5UYb8L3kDZFA9qn9PSR_8kcihBSGUi64aaD7tlrMrHA42qOBQ00cCLa6759bvJCUxbsYVkC_ELoumtVXv_VgTwsaO19VeoFq9oHp9PisdQEO-edBcHYIzYzrKckOPeHZ8VZ1O5dqbQY/s750/Conversations%20are%20the%20next%20generation%20in%20natural%20language%20queries.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Conversations are the next generation in natural language queries" border="0" data-original-height="391" data-original-width="750" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj17YBqHOfhV-TVJ2cFQMec9dTtYBPCog4PixuXrsVPlRLJXSOh5UYb8L3kDZFA9qn9PSR_8kcihBSGUi64aaD7tlrMrHA42qOBQ00cCLa6759bvJCUxbsYVkC_ELoumtVXv_VgTwsaO19VeoFq9oHp9PisdQEO-edBcHYIzYzrKckOPeHZ8VZ1O5dqbQY/s16000/Conversations%20are%20the%20next%20generation%20in%20natural%20language%20queries.png" title="Conversations are the next generation in natural language queries" /></a></div><div style="text-align: center;"><br /></div><div>Autonomous Database Select AI has just introduced a powerful new capability that lets you have conversations with your data. What’s the difference between a <b><a href="https://dbexamstudy.blogspot.com/p/1z0-1042-23-oracle-cloud-infrastructure.html">natural language query</a></b> and a conversation? A lot!</div><div><br /></div><div>Conversations provide a natural way to analyze your data. Ask a question, review the result, and then follow up with questions to clarify or seek more information. It’s simple because we all have been doing this since we learned to speak. </div><div><br /></div><div>Let’s look at an example. Below we started with a top-level question asked by an analyst for a movie streaming service. The analyst then followed up with additional questions:</div><div><br /></div><div><ul style="text-align: left;"><li>“What are our total streams?”</li><li>“Break that out by genre”</li><li>“Add customer segment”</li><li>“Keep the top 5 customer segments and genres by total views. Include a rank in the result”</li></ul></div><div><br /></div><div>It’s a typical conversation you may have with a colleague (although perhaps a little bossy 😉). You can see in the demo below how Select AI lets you have this same conversation with your data, with help from an LLM that interprets the conversational thread and generates SQL:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/LWOZxqHnS5U" width="620" youtube-src-id="LWOZxqHnS5U"></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Notice that Select AI now supports a new kind of SQL: </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">SELECT AI</div><div class="separator" style="clear: both;">Start with our total streams</div><div class="separator" style="clear: both;">The “SELECT” keyword will look familiar to those who know SQL. After that, everything changes. SQL in Autonomous Database has been enhanced with a new “AI” keyword. This indicates that the subsequent text will be natural language. You don’t need to worry about where the data resides or how to formulate the query. Just ask a question. Your natural language will be translated into Oracle SQL using an LLM. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">And at the end of the demo, it asks Select AI to explain the generated query - both the SQL code and what the code means. With all the back and forth in the conversation, this explanation can be really helpful when confirming the results.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>How to enable conversations</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You enable conversations in your Select AI profile. The Select AI profile captures information about your AI provider, the LLM used to translate natural language into queries, the source tables to use for the queries, and more. For conversations, you need to use an OpenAI GPT model (from Azure or directly from OpenAI). In the profile, simply set the conversations flag to “true” to enable the capability:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> DBMS_CLOUD_AI.CREATE_PROFILE (</div><div class="separator" style="clear: both;"> profile_name => 'your_profile',</div><div class="separator" style="clear: both;"> attributes => </div><div class="separator" style="clear: both;"> '{"provider": "azure",</div><div class="separator" style="clear: both;"> "azure_resource_name": "your-resource", </div><div class="separator" style="clear: both;"> "azure_deployment_name": "your-deployment",</div><div class="separator" style="clear: both;"> "credential_name": "AI_CREDENTIAL",</div><div class="separator" style="clear: both;"> "comments":"true", </div><div class="separator" style="clear: both;"> "conversation": "true", </div><div class="separator" style="clear: both;"> "object_list": [</div><div class="separator" style="clear: both;"> {"owner": "moviestream", "name": "GENRE"},</div><div class="separator" style="clear: both;"> {"owner": "moviestream", "name": "CUSTOMER"},</div><div class="separator" style="clear: both;"> {"owner": "moviestream", "name": "PIZZA_SHOP"},</div><div class="separator" style="clear: both;"> {"owner": "moviestream", "name": "STREAMS"}, </div><div class="separator" style="clear: both;"> {"owner": "moviestream", "name": "MOVIES"},</div><div class="separator" style="clear: both;"> {"owner": "moviestream", "name": "ACTORS"} </div><div class="separator" style="clear: both;"> ] </div><div class="separator" style="clear: both;"> }'</div><div class="separator" style="clear: both;"> );</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;">/</div><div class="separator" style="clear: both;">Then, enable the profile for your session:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> DBMS_CLOUD_AI.SET_PROFILE (</div><div class="separator" style="clear: both;"> profile_name => 'your_profile'</div><div class="separator" style="clear: both;"> );</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;">/</div><div class="separator" style="clear: both;">That’s it! Start having conversations with your data.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Summary<span> </span></b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Conversations are a real breakthrough for natural language queries. They let you explore your data in any direction in the most natural way possible. You can get started using conversations today. If you’re using Autonomous Database – it’s already deployed. Or spin up an Autonomous Database Always Free instance and give it a try. Don’t forget to go to the <a href="https://www.oracle.com/autonomous-database/get-started/" target="_blank">Autonomous Database Getting Started</a> page to find webcasts, tutorials, demos, and more.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-6811166346160505802024-02-26T11:43:00.003+05:302024-02-26T11:50:37.851+05:30Enhanced PDB automation on Exadata and Base Database Services<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhSM1Fhyd0xAtzRl5WlPOrWlqFCSAsbMjAFD9u5xz7XAUXPd2IT0yfJctZTxkpS-8W8MYaO2oNCnWGaZtSL0rX_MExWX1F_mv5EVdZ7uq3ef44UyOuHvS1ELm7Cii_4-dzsHeFi1zhh-A_FUaefum71ipzth3FIfcxmOuw1sartRnAaX93_fgCAxnQU00/s1200/Enhanced%20PDB%20automation%20on%20Exadata%20and%20Base%20Database%20Services.webp" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="628" data-original-width="1200" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhSM1Fhyd0xAtzRl5WlPOrWlqFCSAsbMjAFD9u5xz7XAUXPd2IT0yfJctZTxkpS-8W8MYaO2oNCnWGaZtSL0rX_MExWX1F_mv5EVdZ7uq3ef44UyOuHvS1ELm7Cii_4-dzsHeFi1zhh-A_FUaefum71ipzth3FIfcxmOuw1sartRnAaX93_fgCAxnQU00/w640-h334/Enhanced%20PDB%20automation%20on%20Exadata%20and%20Base%20Database%20Services.webp" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div style="text-align: center;"><br /></div><div>We are announcing new Pluggable Database (PDB) automation capabilities on Exadata Database Service on Cloud@Customer (ExaDB-C@C), Exadata Database Service on Dedicated Infrastructure (ExaDB-D), and <b><a href="https://dbexamstudy.blogspot.com/p/1z0-1042-23-oracle-cloud-infrastructure.html"><span style="font-size: large;">Base Database Service</span></a></b> (BaseDB) in all OCI commercial regions. The new set of enhancements brings the automation via OCI Console/API/Terraform for the following PDB-specific features to the Exadata Database and Base Database services:</div><div><br /></div><div>◉ Backup and restore</div><div>◉ Remote clone</div><div>◉ Refreshable clone</div><div>◉ Relocate</div><div>◉ View open modes per VM</div><div><b><br /></b></div><h3 style="text-align: left;"><b>Key Benefits</b></h3><div><br /></div><div>◉ Leverage new PDB automation capabilities for end-to-end application development and deployment in the cloud.</div><div>◉ Access Oracle Multitenant features via OCI Console/API/Terraform on Exadata Database Service and Base Database Service.</div><div><b><br /></b></div><div><b>Let's go over the core user journeys!</b></div><div><br /></div><div>Note: For ExaDB-C@C, ExaDB-D, and BaseDB services in the OCI console, we refer to Container Database (CDB) as '<b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html"><span style="font-size: large;">Database</span></a></b>'. Any mention of CDB below is for clarity and brevity only.</div><div><br /></div><h3 style="text-align: left;"><b>PDB backup</b></h3><div><br /></div><div>When you create a PDB, you can specify if you would like to take an immediate backup of that PDB. This option is also available during local clone, remote clone, and relocate operations if the CDB is configured with the auto-backup feature. The PDB backup destination will always be the same as that of the CDB, and the backups cannot be accessed directly or created on demand. Oracle recommends immediately backing up the PDB after you create, clone, and relocate it, to ensure your PDB is recoverable before the next CDB auto-backup is completed successfully.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjoS2zCrW7TgmCG7Qma82x1FSCcP4AMeBRv0tpfnr3Rmg-SI_Qfn3kDrslKRFF1TAtn7X4GIkpUMAuFovbGTewz_2Z9DhdIkvCjw6E4s_OYftHcYK3RAX35oFxYZaMbwhiU9nslgr-B-Wd9GWsndqY3Tl96myBgx1TQreCOpF74OlTCBL3r2A6QiDf9CA/s1024/1.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="527" data-original-width="1024" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjoS2zCrW7TgmCG7Qma82x1FSCcP4AMeBRv0tpfnr3Rmg-SI_Qfn3kDrslKRFF1TAtn7X4GIkpUMAuFovbGTewz_2Z9DhdIkvCjw6E4s_OYftHcYK3RAX35oFxYZaMbwhiU9nslgr-B-Wd9GWsndqY3Tl96myBgx1TQreCOpF74OlTCBL3r2A6QiDf9CA/w640-h330/1.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>PDB restore - In-place and Out-of-place restore</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You can now restore a PDB within the same CDB (in-place restore) or to a new CDB (out-of-place restore, applicable to ExaDB-D and BaseDB). In-place restore allows you to choose to restore to the latest or a specified timestamp. This is not applicable to PDBs on a Data Guard enabled CDB.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCdI1nTxLnlGV4LDicx5WYGdgbTeDzr2h7A5s-xcoNPlfhpHBAP1-BYJHwnKr7-w71HYC6GSrEQIQp4c11hdc2LdiQZFXUGXRuKBAGELDydFzHuaOp52-O0-nwhzIh83hC55kJPmu4WoxpLFRmnNt8yI6omI5pObCzyymnENTY8CxJoHJo3r8GJFFk0lU/s1024/2.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="523" data-original-width="1024" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCdI1nTxLnlGV4LDicx5WYGdgbTeDzr2h7A5s-xcoNPlfhpHBAP1-BYJHwnKr7-w71HYC6GSrEQIQp4c11hdc2LdiQZFXUGXRuKBAGELDydFzHuaOp52-O0-nwhzIh83hC55kJPmu4WoxpLFRmnNt8yI6omI5pObCzyymnENTY8CxJoHJo3r8GJFFk0lU/w640-h326/2.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFUnKDO1O4jaHyZWqude0s41ilUDG7rMt1VUMWhk_TL7G5OaizMMdbljbiGip7TmvIbT0yCeD1ZenbiYwylQ3_YG4l2U_p34qAfjCZE1tPgV5fK4FVZ3b3_fV55lF0Md6tgpE77nO0pEB4TWA1J-_TpIO-vSoa0aBNmF9xX36xkS2rQLVkCnI6tTGzwM8/s1024/3.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="368" data-original-width="1024" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFUnKDO1O4jaHyZWqude0s41ilUDG7rMt1VUMWhk_TL7G5OaizMMdbljbiGip7TmvIbT0yCeD1ZenbiYwylQ3_YG4l2U_p34qAfjCZE1tPgV5fK4FVZ3b3_fV55lF0Md6tgpE77nO0pEB4TWA1J-_TpIO-vSoa0aBNmF9xX36xkS2rQLVkCnI6tTGzwM8/w640-h230/3.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Out-of-place restore of a PDB(s) is achieved when you restore a PDB to a new CDB. 'Create database from backup' is enhanced to allow restore of a PDB or a set of PDBs to a new CDB. You can specify a PDB or a group of PDBs by the 'Choose the PDBs to restore' option. By default, the PDB(s) will always be restored on a new CDB to be created on an existing VM Cluster or in a new DB System.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnonY18et7A__TfIPp_neHcSLw0ktKx9ACbLiUKeIRDXDNkAldTJBSYBRz5xM7AK7GCbOpnQiQ0-vHwg9pAclf9yehXYrHYZbTgEJ6hp_5ZkuMS-y-x3ItYtlfu78Lwh5ALDvz1pVzd_L_PEgFWLa-L6xvbIfKvD3WMBSEx5Lri-BNpC84TuuUZGSCsUk/s1024/4.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="522" data-original-width="1024" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnonY18et7A__TfIPp_neHcSLw0ktKx9ACbLiUKeIRDXDNkAldTJBSYBRz5xM7AK7GCbOpnQiQ0-vHwg9pAclf9yehXYrHYZbTgEJ6hp_5ZkuMS-y-x3ItYtlfu78Lwh5ALDvz1pVzd_L_PEgFWLa-L6xvbIfKvD3WMBSEx5Lri-BNpC84TuuUZGSCsUk/w640-h326/4.jpg" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Remote clone</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You can create a copy of the PDB within the same CDB (local clone) or to a different CDB (remote clone). The destination CDB can be of the same database version or higher. You can optionally provide an existing common user name (a user created in the CDB$root container) that the database link will use to connect. There is an option to take the backup of the PDB after remote cloning. PDB remote cloning works across Data Guard environments.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSQatzgutX6hoYJVGOFYwOQVmdMDP8UEooJGps9wRIZkht1UHZEBllttiMuzNTobFTjZgRLWgfZhyFFP6mHXoOJNKxYzgh7il1fFCTEPDRhGF3nvxCqDhHBG7ZixLEzL6MV3y0OfyzZUcGpk_CapTEfNyTkGmFjMxJTh_YHqmquBf9ZzF3zyacDBrgo-A/s1024/5.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="567" data-original-width="1024" height="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSQatzgutX6hoYJVGOFYwOQVmdMDP8UEooJGps9wRIZkht1UHZEBllttiMuzNTobFTjZgRLWgfZhyFFP6mHXoOJNKxYzgh7il1fFCTEPDRhGF3nvxCqDhHBG7ZixLEzL6MV3y0OfyzZUcGpk_CapTEfNyTkGmFjMxJTh_YHqmquBf9ZzF3zyacDBrgo-A/w640-h354/5.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_CI-N_JQgwqUwGjvDSX6ExbrjzObpnxVrh11TlM-5uetMrc3kE3bui1lcPNwynjQRJM6l3aUubR5Mlrx_vCnu7AfvBVyjhLNLxN8WoXf0AwYOALT7Ri0t0_X5Kx80zy4uock-duve6M3Alsksk0qrXgFsFPVsBqD6Dr3vY8BIEG6wwPxdYtyG0X1kiPk/s1024/6.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="570" data-original-width="1024" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_CI-N_JQgwqUwGjvDSX6ExbrjzObpnxVrh11TlM-5uetMrc3kE3bui1lcPNwynjQRJM6l3aUubR5Mlrx_vCnu7AfvBVyjhLNLxN8WoXf0AwYOALT7Ri0t0_X5Kx80zy4uock-duve6M3Alsksk0qrXgFsFPVsBqD6Dr3vY8BIEG6wwPxdYtyG0X1kiPk/w640-h356/6.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Refreshable Clone</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You can create a refreshable copy of a PDB (refreshable clone). Providing an existing common user name is mandatory for the database link connection. A refreshable clone PDB can be refreshed at will by going to the PDB details page and initiating the action 'Refresh.' To be able to refresh successfully depends on the availability of the archive redo log files.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtlI09PcT058m1fPgT3UJJtgBB-j_pqwQ8rj3YTwaeKEs4MkWUqI7GKNxpoH-OkBvwogo4v6YGE_X8F2HqurmBd_jqipCHJRiwUQ65RTU4XgemHRfAPk1tK2WDQLnQA3jl5JRuwg0A63i4rMZOSwIkkJ2D81hl5fG7ZBazv234jrSqYO8whvsYGBI55sk/s1024/7.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="526" data-original-width="1024" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtlI09PcT058m1fPgT3UJJtgBB-j_pqwQ8rj3YTwaeKEs4MkWUqI7GKNxpoH-OkBvwogo4v6YGE_X8F2HqurmBd_jqipCHJRiwUQ65RTU4XgemHRfAPk1tK2WDQLnQA3jl5JRuwg0A63i4rMZOSwIkkJ2D81hl5fG7ZBazv234jrSqYO8whvsYGBI55sk/w640-h328/7.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiINl8Ognzht-xfBDlFmk7FFOrzg_ss78fCms52_S19Hy9T611au5Wz0pRw0APB1UhoBhOwBo6q6NINP5cmdSPNM3-eD5b71b10vRChIYbD0gAUy-ef1Qtq7RRTB2IZrGa0psqSuA-BzEhbpgSvv8xfyjh4_Q0pjfr6xBJfc24FHXmjIsBCkf1CMk_f7p8/s1024/8.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="529" data-original-width="1024" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiINl8Ognzht-xfBDlFmk7FFOrzg_ss78fCms52_S19Hy9T611au5Wz0pRw0APB1UhoBhOwBo6q6NINP5cmdSPNM3-eD5b71b10vRChIYbD0gAUy-ef1Qtq7RRTB2IZrGa0psqSuA-BzEhbpgSvv8xfyjh4_Q0pjfr6xBJfc24FHXmjIsBCkf1CMk_f7p8/w640-h330/8.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">To disconnect the refreshable clone PDB from the source, you can convert it to a regular PDB. Once converted, the PDB will be opened read-write, and all the lifecycle operations can be performed. There is an option to take a backup of the PDB after converting from a refreshable clone to a regular PDB. The operation to convert a refreshable clone to a regular PDB when performed on a Data Guard primary will also create a PDB on its standby and be available in mount mode.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2nHPZq33MubzvmTx8Z5MU96wCIOYMuLxOC2wiMCGpL9drCjMJHb-TpVwTl5NAVj2c2_p7IZIwZd3NAXsKbzXcaYydvVttYbw7-INvlqCoox9hfaEUNazMETX0MqyzyaROwrDvj3WW-HaYjuriyb3isgaRwRoYEFhrNIBqzrkp-UMBJkWoe69aSsP84Rk/s1024/9.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="389" data-original-width="1024" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2nHPZq33MubzvmTx8Z5MU96wCIOYMuLxOC2wiMCGpL9drCjMJHb-TpVwTl5NAVj2c2_p7IZIwZd3NAXsKbzXcaYydvVttYbw7-INvlqCoox9hfaEUNazMETX0MqyzyaROwrDvj3WW-HaYjuriyb3isgaRwRoYEFhrNIBqzrkp-UMBJkWoe69aSsP84Rk/w640-h244/9.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvWJEJdYvWJUSoMTTOwbh27sAIzzBwz0n4C0zhjHsZzYswNdKthEQjtzMqBxvTC2Q2k8wnhhivcLTnHUC4BqOg0SIAdUzK1WwspL1aQSm4Kn0lif0SWt1V5ZNaGkTEkPEUAMfUCB_s1ws939_dWmAFJxiJh5ytLSJZhnC9dZf43AMaN6miU5wr2B5DMaw/s1024/10.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="394" data-original-width="1024" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvWJEJdYvWJUSoMTTOwbh27sAIzzBwz0n4C0zhjHsZzYswNdKthEQjtzMqBxvTC2Q2k8wnhhivcLTnHUC4BqOg0SIAdUzK1WwspL1aQSm4Kn0lif0SWt1V5ZNaGkTEkPEUAMfUCB_s1ws939_dWmAFJxiJh5ytLSJZhnC9dZf43AMaN6miU5wr2B5DMaw/w640-h246/10.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>PDB relocate</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You can move a PDB to another CDB. The destination CDB can be in a different compartment, VM cluster, or DB system. The destination container database can be on the same database release version or higher. You can provide a new PDB name while relocating a PDB to a different CDB. Optionally provide an existing common user name the database link will use to connect. There is an option to backup the PDB after relocation to the destination CDB is complete. The time to relocate depends on the size of the PDB, and network bandwidth during file copy from source to destination. Once relocated, the PDB will be opened read-write on the destination. If the destination is a Data Guard primary, a PDB will be created on the standby and will be available in mount mode.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEJzKeH_9Sq1iv6W-bYTrNNvCDDheNuVvxy7o6H9Ih8PYRKcVMPVBVVUryq8QqvnDDmBU4o9M-jTyyL-LYeGFVm6bpyf9oYpbmwUP-96R8JPjnTQkcKxh0QYG9jaqlSw9McJ1Pqwy4Jptp8yzre623FHCqC5emlKPfmvTERxwzBicp042lhr5x4xG4jJo/s1024/11.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="528" data-original-width="1024" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEJzKeH_9Sq1iv6W-bYTrNNvCDDheNuVvxy7o6H9Ih8PYRKcVMPVBVVUryq8QqvnDDmBU4o9M-jTyyL-LYeGFVm6bpyf9oYpbmwUP-96R8JPjnTQkcKxh0QYG9jaqlSw9McJ1Pqwy4Jptp8yzre623FHCqC5emlKPfmvTERxwzBicp042lhr5x4xG4jJo/w640-h330/11.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWBJtOAuGxo_KF4BdtVshYaC1_bpKj_JTRN4jaNNOuKSl7cJvtI9rbteK4b6OqcWoTpsUiHDSDvEdN6_imdAJJJRXWqAQLHzMZJ0KJZH-rEE4bksBknU5Ir4XlHADTGcT0XUpLvif5BCRGD8EACIseDBZAb5h_SMX4oau-0O_NO8VZRcLeguw9BsNhcsc/s1024/12.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="530" data-original-width="1024" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWBJtOAuGxo_KF4BdtVshYaC1_bpKj_JTRN4jaNNOuKSl7cJvtI9rbteK4b6OqcWoTpsUiHDSDvEdN6_imdAJJJRXWqAQLHzMZJ0KJZH-rEE4bksBknU5Ir4XlHADTGcT0XUpLvif5BCRGD8EACIseDBZAb5h_SMX4oau-0O_NO8VZRcLeguw9BsNhcsc/w640-h332/12.png" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>PDB open modes</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A PDB can be opened on a specific VM (a database instance) in the case of a multi-node RAC CDB. If the open mode across the VMs is the same, you will see either of these values: Read Write, Read Only, Mounted. If the open mode across the VMs differs, you will see which VM PDB is opened in Read Write mode by hovering the mouse over the information icon. You cannot change the open modes of the PDB through the OCI console or API. However, you can start or stop a PDB. Starting a PDB and stopping a PDB will bring it into read-write and mount mode accordingly. On standby, starting a PDB and stopping a PDB will bring it into read-only and mount mode depending on the Data Guard type (Active Data Guard / Regular Data Guard).</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhulHAociJTq2Xs2IWVLDU6y85OTBT1jLC3XIbsobVHcqciLNK6PJG9Mvhz4vN3bwahi5Xpjw-QmmNDJovGIFtkGfDjjMAeR3v3tj4KJPhx9gfX89Xyyrcapm7cDZ0LMSafvCUj8Nxln3eUOt5Mzlv8hLdcKOMf2yqngy6mNa0GPJobRsLAVINSTwqygDs/s1024/13.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Enhanced PDB automation on Exadata and Base Database Services" border="0" data-original-height="398" data-original-width="1024" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhulHAociJTq2Xs2IWVLDU6y85OTBT1jLC3XIbsobVHcqciLNK6PJG9Mvhz4vN3bwahi5Xpjw-QmmNDJovGIFtkGfDjjMAeR3v3tj4KJPhx9gfX89Xyyrcapm7cDZ0LMSafvCUj8Nxln3eUOt5Mzlv8hLdcKOMf2yqngy6mNa0GPJobRsLAVINSTwqygDs/w640-h248/13.jpg" title="Enhanced PDB automation on Exadata and Base Database Services" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Considerations</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li>Enhanced PDB automation is supported on database releases 19c and later.</li><li>PDB clone (remote, refreshable) and relocate are supported across the Compartment, VM Cluster, DB System (BaseDB), VCN, Network (ExaDB-C@C), and database version (same or higher). The same is not supported across the Availability Domain (AD) and Exadata Infrastructure.</li><li>A Data Guard standby cannot be either a source or a destination for the PDB clone and PDB relocate operations.</li><li>A refreshable clone PDB created on a Data Guard primary will not appear on standby - its existence will be deferred until converted to a regular PDB.</li><li>Currently, PDB automation is supported for the databases using TDE wallet-based encryption (Oracle-managed keys).</li></ul></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-4629327356532371212024-02-22T17:43:00.000+05:302024-02-22T17:43:44.008+05:30Oracle 1Z0-076 Exam Prep: Tips & Resources<div class="separator" style="clear: both; text-align: center;"><a href="https://www.dbexam.com/oracle/oracle-1z0-076-certification-sample-questions-and-answers" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_blank"><img alt="Oracle Data Guard 19c is a powerful feature of Oracle Database. Find out how to prepare for the Oracle 1Z0-076 exam and get certified." border="0" data-original-height="400" data-original-width="700" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg08GPeucnMJYRYK1VvDFEo1OtbV1KbZTgdCfPyRRu9Bd2lrWChBXCNtvazGRjts_hZAuGsWY5NzLXn2zggP9PBtXurjuKqeUOqbL6JoGdVYzKoqWc_c4FmXd_FyR_2gay2mF60H1GxnBtUCKHp7VOs_-EL7Ok54sHNA0UAbqplN2xmv0RgmzJatLuo9IE/s16000/Learn-Oracle-Data-Guard-19c-and-Pass-1Z0-076-Exam.png" title="Oracle 1Z0-076 Exam Prep: Tips & Resources" /></a></div><p>Are you planning to take the Oracle 1Z0-076 exam and become a certified Oracle Database 19c: Data Guard Administration? If yes, you might wonder how to prepare for this challenging exam and what resources to use. This article will share tips and resources to help you ace the 1Z0-076 exam and boost your career as an Oracle Data Guard expert.</p><h2 style="text-align: left;">What Is the Oracle 1Z0-076 Exam?</h2><p>The Oracle 1Z0-076 certification exam for Oracle Database 19c: Data Guard Administrations. It tests your knowledge and skills on Oracle Data Guard concepts, configuration, management, optimization, monitoring, data protection, high availability, and disaster recovery. The exam consists of 74 multiple-choice questions you must answer in 120 minutes. The passing score is 61%.</p><h3 style="text-align: left;">Why Should You Take the Oracle 1Z0-076 Exam?</h3><p>Oracle Data Guard is a powerful feature of Oracle Database that enables you to create and maintain one or more standby databases to protect your data from failures, disasters, human errors, and data corruption. Oracle Data Guard also provides high availability, scalability, and performance benefits for your database applications.</p><p>By taking the Oracle 1Z0-076 exam and becoming a certified Oracle Database 19c: Data Guard Administration, you can prove your proficiency and expertise in Oracle Data Guard and gain a competitive edge in the job market. You can also improve your <b><a href="https://www.dbexam.com/oracle/oracle-1z0-076-certification-exam-syllabus" target="_blank">career prospects</a></b> and credibility as an Oracle Data Guard professional.</p><p>According to ZipRecruiter, the average salary of an Oracle Data Guard Administrator in the US is $115,000 annually. The demand for Oracle Data Guard Administrators is also expected to grow as more and more organizations adopt Oracle Database 19c and leverage its Data Guard capabilities.</p><h2 style="text-align: left;">How to Prepare for the Oracle 1Z0-076 Exam: Tips and Resources</h2><p>Preparing for the Oracle 1Z0-076 exam requires a lot of dedication, practice, and revision. Here are some tips and resources that can help you prepare effectively and efficiently for the exam:</p><p></p><ul style="text-align: left;"><li><b>Review the exam objectives and topics:</b> The first step in your preparation is to review the exam objectives and issues and understand what the exam expects from you. You can reference the official website and list the topics you must study and master.</li><li><b>Study the official Oracle documentation:</b> The <b><a href="https://education.oracle.com/oracle-database-19c-data-guard-administration/pexam_1Z0-076" target="_blank">official Oracle documentation</a></b> is the best source of information and guidance for Oracle Data Guard 19c. You can find the documentation on the Oracle website and read the relevant sections that cover the exam topics. The documentation provides detailed explanations, examples, and Oracle Data Guard 19c best practices.</li><li><b>Take an online course:</b> If you prefer a more structured and interactive way of learning, you can take an online course that covers the Oracle 1Z0-076 exam topics. Many online platforms, such as Udemy, Pluralsight, and Oracle University, offer high-quality and affordable courses for Oracle Data Guard 19c. You can choose a course that suits your learning style, budget, and schedule. An online course can help you learn the concepts, techniques, and best practices for Oracle Data Guard 19c from experienced instructors and experts.</li><li><b>Practice with hands-on labs:</b> One of the best ways to reinforce your learning and test your skills is to practice with hands-on labs. Hands-on labs permit you to apply your knowledge and gain practical experience with Oracle Data Guard 19c. You can use a virtual machine, a cloud service, or a physical server to set up your own Oracle Data Guard environment and perform various tasks and scenarios that simulate the actual exam. You can also use the Oracle LiveLabs service, which provides free access to Oracle Cloud environments and guided workshops for Oracle Data Guard 19c.</li><li><b>Take practice tests:</b> Another effective way to prepare for the Oracle 1Z0-076 exam is to take practice tests. <b><a href="https://www.dbexam.com/oracle/1z0-076-oracle-database-19c-data-guard-administration" target="_blank">Practice tests</a></b> can help you evaluate your knowledge, recognize your strengths and weaknesses, and familiarize yourself with the exam format and question types. You should take practice tests regularly and review your results and feedback carefully. It would help if you also aimed to score at least 80% on the practice tests before taking the exam.</li><li><b>Revise and relax:</b> The final step in your preparation is to revise and relax. You should review the exam objectives, topics, official Oracle documentation, online course materials, and practice test questions and answers. You should also make a summary or a cheat sheet of the key points and concepts you must remember for the exam. You should also relax and rest well before the exam day. You should avoid cramming and stressing yourself out. You should also eat well, sleep well, and stay hydrated. You should also arrive at the exam center early and be confident and calm.</li></ul><p></p><h3 style="text-align: left;">Apply Your Knowledge and Skills in Real or Simulated Scenarios</h3><p>Preparing for the Oracle 1Z0-076 exam requires applying your knowledge and skills in actual or simulated scenarios. The best way to master Oracle Data Guard 19c is to practice it in a realistic and relevant context, where you can apply the concepts, techniques, and tools you have learned.</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="400" src="https://www.youtube.com/embed/_CEewWyTGhk" width="700" youtube-src-id="_CEewWyTGhk"></iframe></div><p>You can apply your knowledge and skills in actual or simulated scenarios by:</p><p></p><ul style="text-align: left;"><li><b>Setting up your own Oracle Data Guard 19c environment:</b> You can set up your own Oracle Data Guard 19c environment by using Oracle VirtualBox, Oracle Cloud, or Oracle Database Appliance. You can then create, configure, manage, optimize, monitor, protect, and recover your Oracle Data Guard 19c databases and experiment with different scenarios and options.</li><li><b>Taking online or offline Oracle Data Guard 19c courses or labs:</b> You can take online or offline Oracle Data Guard 19c courses or labs that provide hands-on and guided learning experiences on Oracle Data Guard 19c features and functions. These courses or labs are found on Oracle University, Oracle Learning Library, or Oracle LiveLabs.</li><li><b>Participating in online or offline Oracle Data Guard 19c projects or challenges:</b> You can join in online or offline Oracle Data Guard 19c projects or challenges that provide real-world and complex problems or tasks on Oracle Data Guard 19c features and functions. You can find some of these projects or challenges on Oracle Developer Community, Oracle Code, or Oracle Hackathons.</li></ul><p></p><p>By applying your knowledge and skills in actual or simulated scenarios, you can develop your practical and analytical abilities and prepare yourself for the exam and the job.</p><h4 style="text-align: left;">Conclusion</h4><p>The Oracle 1Z0-076 exam is a challenging but rewarding exam that can help you become a certified Oracle Database 19c: Data Guard Administration and <b><a href="https://dbexamstudy.blogspot.com/p/1z0-076-oracle-database-19c-data-guard.html">advance your career</a></b> as an Oracle Data Guard professional.</p><p>Following the tips and resources we shared in this article, you can prepare effectively and efficiently for the exam and achieve your certification goal.</p><p>We wish you all the best for your exam and your future endeavors.</p>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-33573211261697799962024-02-21T11:30:00.003+05:302024-02-21T11:30:47.510+05:30Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements<div><b><a href="https://dbexamstudy.blogspot.com/p/1z0-1042-23-oracle-cloud-infrastructure.html"><span style="font-size: large;">Oracle Database 23c</span></a></b> introduces a host of powerful features aimed at enhancing database performance and query optimization. Among these innovations, Direct Join stands out as an efficient mechanism to streamline update and delete operations involving multiple related tables.</div><div><br /></div><div>23c now allows you to use direct joins to other tables in UPDATE and DELETE statements in the FROM clause, in this article we will use SQL code examples to HR schema, so you can practice and learn it.</div><div><br /></div><div>The main benefit is to make the coding of these Direct Joins simpler, using less code and more readable for SQL developers.</div><div><br /></div><h3 style="text-align: left;"><b>Scenario 1: Updating Salaries based on Department and City</b></h3><div><br /></div><div>Consider the scenario where we need to update the salaries of employees working in the Marketing department in the city of Toronto by increasing their salaries by 10%.</div><div><br /></div><div>Prior to Oracle Database 23c, we might have used a query similar to this:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlrkFQSs0Z_VYIr4S6lb3eZ3oPpKIh6_SBdPWJkvMX68JBbsESCoMjsXVCPhuK9yVrqfkuwq8pfoTVtw-kODIR71_mIcaqxCrAyoq9FK7gZD-IUQz9egi-nQK6dDn3fNOA3Xrq2WxUDnQ3dCyH6w1ku2_qhwD9RiqaQVRqFEoowrhMfWdWOiQ_tsIbZs0/s892/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="510" data-original-width="892" height="366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlrkFQSs0Z_VYIr4S6lb3eZ3oPpKIh6_SBdPWJkvMX68JBbsESCoMjsXVCPhuK9yVrqfkuwq8pfoTVtw-kODIR71_mIcaqxCrAyoq9FK7gZD-IUQz9egi-nQK6dDn3fNOA3Xrq2WxUDnQ3dCyH6w1ku2_qhwD9RiqaQVRqFEoowrhMfWdWOiQ_tsIbZs0/w640-h366/1.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh01AgythzQcexxLuORR6bNfNlsYY8C3kXgwKjxCFAXleOhlQzX9Q5ZLn96VQCj2fM_xF__G9MlgHZJUjuVqHApQ4-6hlCCVaDgb0RvyZt-3U4UoZnUm3R2qPhqHUDpX4i1SywhDfvqGCJZ9NfHeT6Wf0tXpfxtpoQhaz2jD2IsYkOmv0MXb54UDseaClU/s780/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="85" data-original-width="780" height="70" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh01AgythzQcexxLuORR6bNfNlsYY8C3kXgwKjxCFAXleOhlQzX9Q5ZLn96VQCj2fM_xF__G9MlgHZJUjuVqHApQ4-6hlCCVaDgb0RvyZt-3U4UoZnUm3R2qPhqHUDpX4i1SywhDfvqGCJZ9NfHeT6Wf0tXpfxtpoQhaz2jD2IsYkOmv0MXb54UDseaClU/w640-h70/2.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Once we identify the records that need to be updated, we proceed to design our UPDATE statement to modify only those records. Therefore, in Oracle versions prior to 23c, the filter used in the UPDATE statement is quite similar to the filter used in the SELECT statement.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Prior to Oracle Database 23c, the common approach to formulate the UPDATE statement involved employing an inner query within the WHERE clause.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPbLEEZhx7tpA7HDHMk-Sez50Nvw8HkP5ufchP_IghJZsrD-0yErRJVePGRiwsZkPnF52H9pe28HGoCbzfUYdW6eHvzp3z69B_rkb6s3qQ8p6FZ58GiMe7Oe6kvXTp_W1zQhvrskUSrZ2Pz33L2tMhAf-W_d34AbdlIzad8oBb5EkZpXkcmD6basA7fUY/s780/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="516" data-original-width="780" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPbLEEZhx7tpA7HDHMk-Sez50Nvw8HkP5ufchP_IghJZsrD-0yErRJVePGRiwsZkPnF52H9pe28HGoCbzfUYdW6eHvzp3z69B_rkb6s3qQ8p6FZ58GiMe7Oe6kvXTp_W1zQhvrskUSrZ2Pz33L2tMhAf-W_d34AbdlIzad8oBb5EkZpXkcmD6basA7fUY/w640-h424/3.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZhKWqLZ-CnijVzma7FocEt5DYZdQNYJpuTIJDuqsRzhP7EbH9wLYH0uSvyhKs8cYuY1Q6hyjPZ7OtqrNiruZikU9dvNrRbmMFMY5dXdNwTnHro720BIev0uxtx6sRCW7KKZ02D9NIzpD4GHdb3Dg6uvZfb62IQvuJNk9woG-rK17uhQQHS6vi5syuf7k/s340/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="110" data-original-width="340" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZhKWqLZ-CnijVzma7FocEt5DYZdQNYJpuTIJDuqsRzhP7EbH9wLYH0uSvyhKs8cYuY1Q6hyjPZ7OtqrNiruZikU9dvNrRbmMFMY5dXdNwTnHro720BIev0uxtx6sRCW7KKZ02D9NIzpD4GHdb3Dg6uvZfb62IQvuJNk9woG-rK17uhQQHS6vi5syuf7k/w640-h208/4.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">However, in 23c, we can harness the power of Direct Join to optimize this update operation:</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5OnY0m8XqaxuSVcXOCQ78zhuts6h76cvbhWTx4kzRT5Om0e7bMJlGlwLXkBNTIae2odkWZnwAONxtAqj59KRpuyyzHYfDDi1j7hrh7S5kcbv2KdQ3N3MW8UKfg59Pf-SEevkf769UtDddF5cpC3cRfeSeKxNok7C_ca6eOm15i_hGvWMXDDLzKraGirM/s780/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="328" data-original-width="780" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5OnY0m8XqaxuSVcXOCQ78zhuts6h76cvbhWTx4kzRT5Om0e7bMJlGlwLXkBNTIae2odkWZnwAONxtAqj59KRpuyyzHYfDDi1j7hrh7S5kcbv2KdQ3N3MW8UKfg59Pf-SEevkf769UtDddF5cpC3cRfeSeKxNok7C_ca6eOm15i_hGvWMXDDLzKraGirM/w640-h270/5.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghFYWek0d7yoB5UPdzuBnLkulyaVeFFkKrpUq1g0MVnk42322mjrM2_fn7AY6RT7qn-sHAoOLvCtEOOYVeWkLZsmXBxpug5N5150gCFEBIxgmx9IHrDLASxrrg7iMX2VyhaNLGe70PDFWfoN5MBr6kV35gVwlnocolrj-Coz4G3vE-P2N6qxzO1SRGU04/s410/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="113" data-original-width="410" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghFYWek0d7yoB5UPdzuBnLkulyaVeFFkKrpUq1g0MVnk42322mjrM2_fn7AY6RT7qn-sHAoOLvCtEOOYVeWkLZsmXBxpug5N5150gCFEBIxgmx9IHrDLASxrrg7iMX2VyhaNLGe70PDFWfoN5MBr6kV35gVwlnocolrj-Coz4G3vE-P2N6qxzO1SRGU04/w640-h176/6.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b>By utilizing Direct Join, we simplify the query, eliminate subqueries, and improve overall performance.</b></div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Scenario 2: Delete employee Neena's job history where she worked as AC_ACCOUNT</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Suppose we need to delete employee Neena's job history where she worked as AC_ACCOUNT.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Prior to Oracle Database 23c, we might have used a query similar to this:</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifsohmdx5bOEeQdxn85nPTN2QrGvE7idCjPKsxW6GcO5MyjUpFOf4G0yxoKHXZqXlH2RwJa3nYuJA5hsfzc8UneT75d4EHXW0edyGUZwNZrXBqw-RoZYiiW0AW7u4HX1zzsu6YZs742GU9yl1nZ-IQ0ktTK5bdGkvGanb4X9wypXnpimM0lomkUwBfAew/s658/7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="336" data-original-width="658" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifsohmdx5bOEeQdxn85nPTN2QrGvE7idCjPKsxW6GcO5MyjUpFOf4G0yxoKHXZqXlH2RwJa3nYuJA5hsfzc8UneT75d4EHXW0edyGUZwNZrXBqw-RoZYiiW0AW7u4HX1zzsu6YZs742GU9yl1nZ-IQ0ktTK5bdGkvGanb4X9wypXnpimM0lomkUwBfAew/w640-h326/7.jpg" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJH4Z0dWkPS3RTPer1RzzXbpae6rnuCC0zVoxFMpGY_9Y4vLQ0st6SFpx03ov787bzhDrgBG7FTHJtgaA-faL-bQW25_yDr0xbIHvhduzSmsqJeoOTOznYsxOROFrnJ74Qmg12EfmmQla3NW-SOCG2t1kR0-nwK2-qFmzBmZ0XFSq2Ye8ovSfE7QceOL0/s590/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="55" data-original-width="590" height="60" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJH4Z0dWkPS3RTPer1RzzXbpae6rnuCC0zVoxFMpGY_9Y4vLQ0st6SFpx03ov787bzhDrgBG7FTHJtgaA-faL-bQW25_yDr0xbIHvhduzSmsqJeoOTOznYsxOROFrnJ74Qmg12EfmmQla3NW-SOCG2t1kR0-nwK2-qFmzBmZ0XFSq2Ye8ovSfE7QceOL0/w640-h60/8.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Once we identify the records that need to be deleted, we proceed to design our DELETE statement to remove only those records. Therefore, in prior to 23c, the filter used in the DELETE statement is quite similar to the filter used in the SELECT statement.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Prior to Oracle Database 23c, the common approach to formulating the DELETE statement involved employing a subquery or inner query within the WHERE clause.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiK_9VgaH4H3SdRBAuyspRPl2Rg_af9OnlNDszlLOdAbqz9j2Hpia_NQdvmjHA_dMoe6Hl0kNQ57si49kiYWJppULWRNlJGTwtW6zXrxqgHyFCHIgewuNZeUj_3v86_Zqf4KxVWN2Vl_0VCMo9Tw5QiaF0uNyaqvE_zadjMrftwVtkT3654424HMQcMlY/s626/9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="296" data-original-width="626" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiK_9VgaH4H3SdRBAuyspRPl2Rg_af9OnlNDszlLOdAbqz9j2Hpia_NQdvmjHA_dMoe6Hl0kNQ57si49kiYWJppULWRNlJGTwtW6zXrxqgHyFCHIgewuNZeUj_3v86_Zqf4KxVWN2Vl_0VCMo9Tw5QiaF0uNyaqvE_zadjMrftwVtkT3654424HMQcMlY/w640-h302/9.jpg" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOm4ISlLE809wG40oFTOttMKV4nEYWsWlrz6jaitqHMeILVbAR6sRUpAGQIu3ponqbsiY4IBn0WYKFW2g6cS0fbBAm7-KZ-7_YtOFwxIqfx5AFAZk6Jx_pwq29seZNESrDnJz6K4PbBO7NwAbZhnonwr88c0ABJwsyj-ofqNDMwfM_7qvcOQIMwkcZJHE/s360/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="135" data-original-width="360" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOm4ISlLE809wG40oFTOttMKV4nEYWsWlrz6jaitqHMeILVbAR6sRUpAGQIu3ponqbsiY4IBn0WYKFW2g6cS0fbBAm7-KZ-7_YtOFwxIqfx5AFAZk6Jx_pwq29seZNESrDnJz6K4PbBO7NwAbZhnonwr88c0ABJwsyj-ofqNDMwfM_7qvcOQIMwkcZJHE/w640-h240/10.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">However, 23c, we can harness the power of Direct Join to optimize this DELETE operation:</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4j3tMtxAIZaajHoM_G_jJs9AA6wRCNz_N1iLW6tLiipcE8rm56AGufPv9bqJ94dOCffSOB9KeNxCQQSMMcFhDk2u9M7_Ur1ZfubDUJP_gvT1oqnlsYVX2var6lg6tjUWandF8a5IUo44nLUFRmeA3eW_xs8vCYP9RjWitlHTkHUxC68HkfbBTJ-Daei0/s410/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="113" data-original-width="410" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4j3tMtxAIZaajHoM_G_jJs9AA6wRCNz_N1iLW6tLiipcE8rm56AGufPv9bqJ94dOCffSOB9KeNxCQQSMMcFhDk2u9M7_Ur1ZfubDUJP_gvT1oqnlsYVX2var6lg6tjUWandF8a5IUo44nLUFRmeA3eW_xs8vCYP9RjWitlHTkHUxC68HkfbBTJ-Daei0/w640-h176/11.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHmJoJBh23S63qMnnn2umF5IAf2xPEaaGij8DAVwjc_xAQEzNn1InAGK8owDI-rIw0DZPe4wfEUmfqeCCbhheG3qcnPx6MYjvpNvAKK_RWDupzrxKJNdzEwL9luMJ290cE3QxhajYtLicP8SajgCJ_A3XjqqMan_7gPZln2hf0AcIS1eUqgZl9Y0nBgrs/s658/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="216" data-original-width="658" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHmJoJBh23S63qMnnn2umF5IAf2xPEaaGij8DAVwjc_xAQEzNn1InAGK8owDI-rIw0DZPe4wfEUmfqeCCbhheG3qcnPx6MYjvpNvAKK_RWDupzrxKJNdzEwL9luMJ290cE3QxhajYtLicP8SajgCJ_A3XjqqMan_7gPZln2hf0AcIS1eUqgZl9Y0nBgrs/w640-h210/12.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGDyXnLbqK91246kBiIy9n7PIxBcXI5PfhgKsz-bENbVKZNw7ujDNjEt0102HtrgvQizddr4byCNM8No5sx1wIgzDZ7yEUbVVRRbK8nz0Msq2cEO7gT8RdpVx1J39z7yOnE7zGliaVXy8I0l_3SW4BvmbGATaglTAR6DyMt7lEl-x0wIBc9h5ihxbWgxM/s360/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" border="0" data-original-height="135" data-original-width="360" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGDyXnLbqK91246kBiIy9n7PIxBcXI5PfhgKsz-bENbVKZNw7ujDNjEt0102HtrgvQizddr4byCNM8No5sx1wIgzDZ7yEUbVVRRbK8nz0Msq2cEO7gT8RdpVx1J39z7yOnE7zGliaVXy8I0l_3SW4BvmbGATaglTAR6DyMt7lEl-x0wIBc9h5ihxbWgxM/w640-h240/13.png" title="Oracle Database 23c: New feature - Direct Joins for UPDATE and DELETE Statements" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-90340888417551733362024-02-19T12:00:00.000+05:302024-02-19T12:00:27.050+05:30Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs<div>With zero lines of code and just a few clicks you can create a property graph view from an RDF knowledge graph. This enables you to run path analysis on a knowledge graph. And why is that interesting? A knowledge graph captures relationships between data entities, providing a way to capture knowledge (facts that describe a concept or domain) from experts. <b><a href="https://dbexamstudy.blogspot.com/p/1z0-116-oracle-database-security.html">Path analytics</a></b> on such a knowledge graph can identify entities in your data that are connected to each other, via the concepts captured in the knowledge graph. Path analytics can explain how to reach a goal – an entity in the graph - and ensures that information is not missed in critical decision-making.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicFQq7i3iR5jIeylY5qk3aVNx_HylL7DlxxKufd2PA8kPG0iFyurS2q1pjcovssoLGJKY4e_FdUHEgkQo9T6DSVnsttcHEIUyqnTU79uVXkGcWxc34WcE6YYiqIfLC0jEgO4AiEaYG26hOqh5icyQxucJ1WGhbr2-dKRA7MS4q64ZIYgbibnsLUPIHumQ/s794/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" border="0" data-original-height="398" data-original-width="794" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicFQq7i3iR5jIeylY5qk3aVNx_HylL7DlxxKufd2PA8kPG0iFyurS2q1pjcovssoLGJKY4e_FdUHEgkQo9T6DSVnsttcHEIUyqnTU79uVXkGcWxc34WcE6YYiqIfLC0jEgO4AiEaYG26hOqh5icyQxucJ1WGhbr2-dKRA7MS4q64ZIYgbibnsLUPIHumQ/w640-h320/1.png" title="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 1: UI to create a property graph from an RDF knowledge graph.</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;">You might be new to graph theory and graph analytics, so let me explain a bit about graphs along with some examples. Let us first understand knowledge graphs.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>What is a Knowledge Graph?</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Knowledge graphs capture information about a domain. They organize information as connected networks. In a knowledge graph the entities and relationships between them are represented using the formal semantics of the standards defined by the W3C (World Wide Web Consortium), and this enables knowledge (the facts about a concept or domain) to be consumed through APIs. The complex layers of meaning in data can be represented so that they can be disambiguated by applications. Knowledge graphs can be used to provide context to data so application developers can understand the data better and analysts can make more informed decisions.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">For example, consider job candidates and their resumes. Representing their attributes as a knowledge graph can help recruiters make more informed decisions, because the graph captures the relationships between the different concepts that make up a candidate’s skillset. A knowledge graph can capture how the different entities – education, skills, experience – can be related to each other. Such a knowledge graph is referred to as an ontology.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Consider an ontology on the topic AL/ML. AI/ML is a general concept and several sub-topics can be attributed to it as you see in Figure 2.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEdW1Sa2Gy1apGEfZxLv_coi5OaJjLBx4XIvZqJzism1N4GHl3btyzP-vT5iGAbHuvw67f637mhEUgrp1Ws3-j5ZkBAEm48MN1o91kivXT1hmsM9B7IG1U68SisLaDcKX10f-aE9f1A67wX3RLHs_PvcF0JVtsMULNvH96bJOkeEYPGi9JC4liluXEM74/s522/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" border="0" data-original-height="204" data-original-width="522" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEdW1Sa2Gy1apGEfZxLv_coi5OaJjLBx4XIvZqJzism1N4GHl3btyzP-vT5iGAbHuvw67f637mhEUgrp1Ws3-j5ZkBAEm48MN1o91kivXT1hmsM9B7IG1U68SisLaDcKX10f-aE9f1A67wX3RLHs_PvcF0JVtsMULNvH96bJOkeEYPGi9JC4liluXEM74/w640-h250/2.png" title="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 2: Ontology of the “AI/ML” topic with sub-topics</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;">These topics and sub-topics are related to various tools and programming skills, as shown in Figure 3. As you can see some tools and skills are related to more than one sub-topic.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6nlA1UqBdNP5o-vBillNY6lBLO8J6wV9Bqr24z0nfHY6cY068ZKuPSGltOs_rHrpDqPL_mIHnZQjm1H__L8o8bqlQ0WZHnKoK2AOGhc6JHvi57EFpHlZf9G1lMyRO_49W1lRUsda_X3fIMfE6O78pzF9op1Id6gn5bxSc9-U3693Djp7JrN3hFsXcxmE/s708/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" border="0" data-original-height="247" data-original-width="708" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6nlA1UqBdNP5o-vBillNY6lBLO8J6wV9Bqr24z0nfHY6cY068ZKuPSGltOs_rHrpDqPL_mIHnZQjm1H__L8o8bqlQ0WZHnKoK2AOGhc6JHvi57EFpHlZf9G1lMyRO_49W1lRUsda_X3fIMfE6O78pzF9op1Id6gn5bxSc9-U3693Djp7JrN3hFsXcxmE/w640-h224/3.png" title="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 3: Ontology of the “AI/ML” topic with sub-topics and related tools and programming skills</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;">Then there are companies that have products related to these topics, as show in Figure 4.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiktt20Sfsrp-dN2xw6XGsN4MR2PxeHatsFhmgHqCYvD_lN_N7oiCpDWJh_9HF2Afvn2sE8s7qBwnELllZcm01wnk_Bv8AKmR9KDpHR0za6Jlx3SmoFvdzYcz7nUKB7QEvmQaTH0Y0Xjzd4w2ogn4XoKt2W3KiesjiFIa2ocgeeNeR0TLN1e-0N0LKYttw/s881/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" border="0" data-original-height="310" data-original-width="881" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiktt20Sfsrp-dN2xw6XGsN4MR2PxeHatsFhmgHqCYvD_lN_N7oiCpDWJh_9HF2Afvn2sE8s7qBwnELllZcm01wnk_Bv8AKmR9KDpHR0za6Jlx3SmoFvdzYcz7nUKB7QEvmQaTH0Y0Xjzd4w2ogn4XoKt2W3KiesjiFIa2ocgeeNeR0TLN1e-0N0LKYttw/w640-h226/4.png" title="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 4: Ontology of the “AI/ML” topic with added information on companies that have AI/ML products</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;"><b>This type of information (an ontology) is curated by experts and represented as a knowledge graph in many organizations as a way to store descriptions of entities and how they are related to each other.</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Finally we include the candidates you may be considering to hire for the role that requires AI/ML expertise, and the connections they have to various entities in the ontology.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7y9bx56Z7w8BHagw8XVBRQhyphenhyphenXAUneCn1xxvb7yint28g84DgKwP4jSDPrOKeMpnet4S5Y87LS5cCq9LnLHLgxn59B4yUFrz-zpW06wT1AEPH0bXibTVcso-a69ofwAhafs8uhXAex-kKYhXq31DSTHrpkS2Qq_8NFXRCu1RiTQ5tIncMosMClfVtnAKw/s979/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" border="0" data-original-height="420" data-original-width="979" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7y9bx56Z7w8BHagw8XVBRQhyphenhyphenXAUneCn1xxvb7yint28g84DgKwP4jSDPrOKeMpnet4S5Y87LS5cCq9LnLHLgxn59B4yUFrz-zpW06wT1AEPH0bXibTVcso-a69ofwAhafs8uhXAex-kKYhXq31DSTHrpkS2Qq_8NFXRCu1RiTQ5tIncMosMClfVtnAKw/w640-h274/5.png" title="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 5: How candidates are connected to the AI/ML ontology</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;">This network of concepts (the ontology) and how the candidates fit in this network provide a more complete picture of our candidate pool. How a candidate is connected to a required skill or topic can determine how strongly they satisfy the requirements.For example, Jane has worked for company Y, which develops products for data analytics (Data Science). John has experience in Python, has participated in Hackathons and has GitHub repositories with code related to NLP. So we can see that John has more connections to the AI/ML topic, but Jane has the work experience that almost perfectly matches the AI/ML developer role that you are looking to fill.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">How can we programmatically determine the different paths that connect a candidate to the goal of being an AI/ML developer with a relevant set of skills? This brings us to property graphs.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>What is a Property Graph?</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Like knowledge graphs a property graph also connects entities by the relationships between them. In addition, each entity (also known as a ‘node’) and relationship (also known as an ‘edge’) can have attributes (also known as ‘properties’). Property graphs can be queried based on how nodes are connected to each other by a path and the length of each path, filtered based on properties of the node and the edge. Graph algorithms such as PageRank, Dijkstra’s shortest path and clustering can be run on property graphs.Property graphs are particularly well suited for path analysis that explores how entities are connected.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In our example, the goal would be to find candidates connected to the AI/ML node in the graph and then determine which connection is the strongest. This might be by looking at the number of hops in a path (fewer hops might imply a stronger connection), or weights assigned as a property to each edge. Or you can just determine the number of paths – the more the number of paths, the stronger the connection. Additionally, knowing and identifying the intermediate nodes in every path, rather than having a black box that identifies paths for each candidate is important. For example, that information is relevant for the candidate’s future skills development plan once they are hired. This feature, the explainability of an outcome or prediction, is enabled by graphs. Every piece of information in the graph can be traced to where it comes from and what it connects to.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>What Does a Property Graph View on a Knowledge Graph Do?</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The formal semantics and syntax of the knowledge graph standards provide a simple way to capture information about a domain, but do not enable flexibility in traversing paths in that graph. Property graphs are more flexible, and have evolved to enable developers to find paths, clusters, spanning trees, and other structures in a graph. Most vendors focus on one of these two graph models, whereas Oracle provides the ability to use both property graphs and RDF knowledge graphs, as well as create a property graph view from an RDF knowledge graph, all in the same database.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Let us go back to our example and see what insights we can discover from such a property graph view. Jane has worked for company Y, which develops products for data analytics (Data Science). John has experience in Python, a necessary skill for Data Scientists, and has participated in Hackathons and has GitHub repositories with code related to NLP. He worked for company X, but there is no known connection between that company and the skills we are looking for. Kavitha has taken courses in Data Science, while Yi-Ching has taken courses in Statistics, and also published papers at conferences. Katia has experience in Cohere, which is related to LLMs. These are all different paths each candidate has to the skills the position requires. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Consider candidate Jane</b></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3yP5s-krjH4_prwcSErZBsw-K7j5j_5dCkx9ln61YdokjN3XJdwloQ5RQeGbdqUk_4fCkaTOX6Q8ll8pIeky3tYbsn_7_UO1iTrFisRo7kz8j79rbV45zG71cI9WaFZu8f6xc-8wkjFBZVXuXx4pPIMwmJsJnaVrBAhZyFq_qWy4r3V0QDLEri12myY/s979/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" border="0" data-original-height="420" data-original-width="979" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3yP5s-krjH4_prwcSErZBsw-K7j5j_5dCkx9ln61YdokjN3XJdwloQ5RQeGbdqUk_4fCkaTOX6Q8ll8pIeky3tYbsn_7_UO1iTrFisRo7kz8j79rbV45zG71cI9WaFZu8f6xc-8wkjFBZVXuXx4pPIMwmJsJnaVrBAhZyFq_qWy4r3V0QDLEri12myY/w640-h274/6.png" title="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 6: Ontology of the “AI/ML” topic and Jane’s path to the AI/ML topic</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;">Jane – works for -> Company Y – which develops products in -> Data Science –which is a subtopic of-> AI/ML.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This is a strong path as she has actual experience working for a product company in an area related to the AI/ML topic.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Consider candidate John</b></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicIlOjCm5OTINhYz4OmEIBoSNKSun2fzexDj2iXEdrNn8zCksDkoqOOcE4gqxdDPpEVAvVb2pD2yf1luTFaJaluB0rj7txywY3PWWINs9dMUSVbSw83YkeSOv_OioYovBvpO_9ziImcHUzqi_O1AkkSYhyphenhyphenPRCjaf6pp8MgGikflk5wm2PtfnPTxi0mQFI/s922/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" border="0" data-original-height="397" data-original-width="922" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicIlOjCm5OTINhYz4OmEIBoSNKSun2fzexDj2iXEdrNn8zCksDkoqOOcE4gqxdDPpEVAvVb2pD2yf1luTFaJaluB0rj7txywY3PWWINs9dMUSVbSw83YkeSOv_OioYovBvpO_9ziImcHUzqi_O1AkkSYhyphenhyphenPRCjaf6pp8MgGikflk5wm2PtfnPTxi0mQFI/w640-h276/7.png" title="Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 7: Ontology of the “AI/ML” topic and John’s paths to the AI/ML topic</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;">John – works for –> Company X</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">John – has experience -> Python – skill needed for -> Data Science – which is a subtopic of -> AI/ML</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">John – has experience -> Python – skill needed for -> NLP – which is a subtopic of -> AI/ML</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">John – has participated in -> Hackathons – related to -> Spark NLP – API/tool for -> NLP - which is a subtopic of -> AI/ML</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">John – has created -> GitHub repos – related to -> Spark NLP – API/tool for -> NLP - which is a subtopic of -> AI/ML</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">John has four paths to the node AI/ML, but the company he worked for, Company X, does not appear to have a connection to the AI/ML topic.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The property graph view on a knowledge graph for the AI/ML topic gives you a deeper and more complete view of applicants to help you decide which candidates to hire.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>More Informed Decision Making</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">“Is there a connection between two entities Y and Z?” or “how do you reach an entity B from entity A?” are important questions in many applications. In this example, we can have a more complete picture of how a candidate is related to the required skills by asking such property graph path analytics questions. The good news is that you can run such analytics using a property graph view on knowledge graphs, created through a new “no-code” Graph Studio interface. I am sure you are very excited about the new possibilities this may give you – I will follow up with another blog with an example of how you may go about creating a property graph view on an RDF knowledge graph to run graph analytics. Stay tuned.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-33376801655679926762024-02-16T11:31:00.000+05:302024-02-16T11:31:09.730+05:30MicroTx Enterprise Edition Features<div>Oracle recently announced the availability of <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html">MicroTx Enterprise Edition</a></b>. This new release adds many new enterprise features making MicroTx Enterprise Edition suitable for a wide variety of enterprise applications. This blog post will go into the details of these new features.</div><div><br /></div><h3 style="text-align: left;"><b>No Limit on Transaction Throughput</b></h3><div><br /></div><div>One of the most important changes in the MicroTx Enterprise Edition is the elimination of the transaction throughput limit. MicroTx Free only allows 4,800 transactions per hour as it is intended for development and not production or enterprise deployments. With the release of MicroTx Enterprise Edition, this limitation no longer exists and MicroTx Enterprise Edition deployments can handle hundreds to thousands of transactions per second. This level of throughput exceeds the requirements of almost all applications. To put transaction volumes in perspective, Visa claims to have processed 276 billion transactions in the 12 months ending in September 30, 2023, which works out to an average of 8,700 transactions per second.</div><div><br /></div><h3 style="text-align: left;"><b>Admin Console</b></h3><div><br /></div><div>Enterprise users need a way to monitor and manage their distributed transactions. With the new administration console added to MicroTx Enterprise Edition, users can observe what transactions are in flight, performance metrics for the coordinator cluster, commit/rollback transactions with heuristic outcomes, and more.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQow_ZTi5SUgasPdRCjzTOBFjQZbxOseN3EZ20BRvw8JZ9cfvkwAJoWhtU6zndH9T01EnmxqaH1-qQ2uLyjXMNMhJjbxFmYztlU1_KGoAeSv8edtpMzvzqnqdWgGekwuNLdz_W4GrnKGnelLw6xo1vN8ov_i9LuPpR6blajyK8DZXTT86DOA6x_0V5l28/s1024/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="MicroTx Enterprise Edition Features" border="0" data-original-height="524" data-original-width="1024" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQow_ZTi5SUgasPdRCjzTOBFjQZbxOseN3EZ20BRvw8JZ9cfvkwAJoWhtU6zndH9T01EnmxqaH1-qQ2uLyjXMNMhJjbxFmYztlU1_KGoAeSv8edtpMzvzqnqdWgGekwuNLdz_W4GrnKGnelLw6xo1vN8ov_i9LuPpR6blajyK8DZXTT86DOA6x_0V5l28/w640-h328/1.png" title="MicroTx Enterprise Edition Features" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Transaction Coordinator Clusters</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">For enterprise users, this release of MicroTx Enterprise Edition provides greatly improved reliability, availability, scalability, and performance (RASP) features. Much of this comes from a couple of key features including the ability to run multiple copies of the MicroTx Enterprise Edition transaction coordinator as part of a cluster. This allows MicroTx Enterprise Edition to scale out and scale in to meet the demands of your application. Should you need more transaction throughput, you can simply increase the number of replicas of the MicroTx Enterprise Edition transaction coordinator. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">For the clustering support to improve performance, the service mesh to which MicroTx Enterprise Edition is deployed must support request affinity. This means that requests from an initiator and the other participants in a transaction will land on the same transaction coordinator instance. This is typically provided by the service mesh by hashing some HTTP header and using that hash to determine which transaction coordinator instance the request should be delivered to. This also allows the transaction coordinator to cache transaction state in memory as all related requests will usually end up on the same instance. Should a request, as part of a transaction, land on a different instance due to failure or scaling operations, that instance can recover the transaction state from the persistent transaction state maintained in etcd or Oracle Database.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Persistent Transaction State</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">To ensure transactions can be properly handled in the presence of failures, the state of the transaction needs to be persisted in case a transaction coordinator fails. MicroTx Enterprise Edition supports persisting transaction state to either etcd or Oracle Database. Either can be used just by setting the appropriate configuration information.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">By storing the transaction state in a shared persistent store, the MicroTx Enterprise Edition transaction coordinator can recover from a variety of failures. Should a coordinator instance fail, another transaction coordinator can take over handling any inflight transactions being processed by the failed coordinator. Whether that failure is a crash, network failure, operator error, or pretty much any other reason, subsequent requests will be handled by one of the remaining transaction coordinator instances. This ensures transactions can be successfully processed even amid most failures. There are always some failures that can cause a heuristic outcome, such as a database prematurely committing or rolling back its portion of a transaction.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>RAC Support for XA Transactions</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle RAC databases require that transaction branches not span RAC instances. This means a transaction manager must be aware of the RAC instance participants are using, or use singleton database services that are only active on one RAC instance at a time. MicroTx Enterprise Edition handles this by having the RAC instance ID reported to the transaction coordinator when a participant microservice enlists in a transaction. This allows the coordinator to determine if a new transaction branch is required or not. Without this capability, microservices using a RAC database would have to use singleton database services.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Common XID</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In the XA pattern for distributed transactions, each transaction branch needs to be prepared and committed. More branches equates to more messages that need to be sent when committing the transaction. To help prevent the proliferation of transaction branches, MicroTx Enterprise Edition will try to reuse branches if possible. It does this by having the participants report what resource manager they’re using when they enlist in the transaction. The coordinator uses this information to decide if a new transaction branch needs to be created. If there is already an existing transaction branch in the resource manager, the coordinator will return the same XID (global transaction identifier and branch qualifier), thus eliminating the need for another branch. If this is the first time the resource manager is being enlisted in the transaction, the coordinator will return a new unique branch qualifier. In the case where all participants are using the same resource manager such as Oracle database, the transaction will be committed one phase saving a lot of messages and eliminating the need for the coordinator to write to its transaction log. This can result in dramatic performance improvements.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>XA Transaction Promotion</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">When starting an XA transaction, if enabled, MicroTx Enterprise Edition will actually start a local transaction. The transaction will remain a local transaction until such time as another participant may become involved in the transaction. At that point, MicroTx Enterprise Edition will promote the local transaction to a full XA transaction. This makes the cost of starting a transaction minimal until such time it may need to be promoted. Currently the decision to promote occurs whenever a call is made to another microservice. At that point MicroTx Enterprise Edition promotes the transaction even though the called microservice may not end up being a participant.This currently only works with Oracle database.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Grafana Dashboard</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Included in the MicroTx Enterprise Edition release are Grafana dashboards. The MicroTx Enterprise Edition coordinator provides metrics that can be collected by Prometheus and visualized using Grafana as shown in this picture.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWjh1-JhTggo8uDVyxEQBjSL3_JYll1IWxRuJuLl8K3IeRyr_R45bsVSa56AQ1kmjzOKBdQmU72k_aRpbmEe2P1FloCDJoyQLG090uxvk2IUhz-dwuSwgXCmdkllL44DODKO2SHbrGoHcNCWBVoOu3aMaETq8HtruFvs0qPt_kG0k80CtwUMOSEPFiNE8/s1024/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="MicroTx Enterprise Edition Features" border="0" data-original-height="677" data-original-width="1024" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWjh1-JhTggo8uDVyxEQBjSL3_JYll1IWxRuJuLl8K3IeRyr_R45bsVSa56AQ1kmjzOKBdQmU72k_aRpbmEe2P1FloCDJoyQLG090uxvk2IUhz-dwuSwgXCmdkllL44DODKO2SHbrGoHcNCWBVoOu3aMaETq8HtruFvs0qPt_kG0k80CtwUMOSEPFiNE8/w640-h424/2.png" title="MicroTx Enterprise Edition Features" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b>Summary</b></div><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;">This new Enterprise Edition of MicroTx provides all the features, performance, and resiliency required for enterprise applications. Developer should feel comfortable relying on MicroTx Enterprise Edition to help address their data consistency requirements in microservice based applications. Start with MicroTx Free while developing and testing your microservices, and then switch to MicroTx Enterprise Edition when it comes time to move to production.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-1341245395879836232024-02-14T10:16:00.001+05:302024-02-14T10:16:50.957+05:30Introducing Select AI - Natural Language to SQL Generation on Autonomous Database<p>Introducing Autonomous Database Select AI - enabling you to query your data using natural language. Combining generative <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html">AI large language models (LLMs)</a></b> with Oracle SQL empowers you to describe what you want - declarative intent - and let the database generate the SQL query relevant to your schema. Some LLMs might be good at generating SQL, but being able to run that SQL against your database is another matter. Select AI enables generating SQL that is specific to your database.</p><p>Since LLMs are trained on huge volumes of text data, they can understand the nuances and even intended meaning in most natural language queries. Using natural language to generate SQL reduces the time required to generate queries, simplifies query building, and helps to minimize or eliminate specialized SQL knowledge. Using natural language, deriving information from your database that involves writing queries with multiple joins, nested subqueries, and other SQL constructs becomes much easier and faster. While analytics tools make it easy to query and understand database data, the ability to interact with your SQL database using natural language prompts can help increase productivity of expert and non-expert SQL users to query their database without writing queries.</p><p>By learning effective SQL query patterns from curated training data, LLMs can produce more efficient queries - enabling them to perform better. As part of Oracle Autonomous Database, Select AI inherits all security and authentication features of the database.</p><p>By virtue of being integrated with Oracle SQL, this capability is available through any SQL IDE, SQL Developer Web, Oracle Application Express (APEX), and Oracle Machine Learning Notebooks. Any application that invokes SQL and has an AI provider account also has access to Select AI.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM4tnKugf5jwwFiydD4SvM0UarKzWTXBCx2YMBuFwmuL00RlZU6OQgKGL9g-7WqXe7oF6OWFYbpTyuGCPVssO6sBk5b7zc-M4gAqdToPTxM8Bm71SMFbQ1yg406o8uwxVzflOzwmuwpxGOSAmnwwpmotqKqLhSdhbb6oGqyyRREddyOBCaTKYR5I11w8Q/s947/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="245" data-original-width="947" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM4tnKugf5jwwFiydD4SvM0UarKzWTXBCx2YMBuFwmuL00RlZU6OQgKGL9g-7WqXe7oF6OWFYbpTyuGCPVssO6sBk5b7zc-M4gAqdToPTxM8Bm71SMFbQ1yg406o8uwxVzflOzwmuwpxGOSAmnwwpmotqKqLhSdhbb6oGqyyRREddyOBCaTKYR5I11w8Q/w640-h166/1.png" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Read on to explore how to take advantage of this new capability in Autonomous Database. </div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>LLMs are not enough</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Some LLMs are good at generating SQL, often correctly inferring what the user wants and inventing table and column names in the structure of a valid SQL query. Of course, this query works only if your database has tables with columns as generated. In a sense, the LLM hallucinates the tables and columns needed to produce the SQL query. You can use such a generated query as a template and manually change table and column names as needed, but what if you didn't need to?</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Consider the following prompt “Generate the SQL to find the total amount spent by each customer on iPhones.” Below, we used OpenAI's ChatGPT and see the use of Customers and Purchases tables, a group-by clause, the aggregation using SUM, and a filter using the product name. Such LLMs provide a great start for SQL generation, but they need context in the form of the user’s specific tables and columns. You could manually add details to your prompt with the table definition, but no doubt you’d prefer that the system identifies relevant tables and columns and automatically augment the prompt. This augmented prompt enables the LLM to produce a much more relevant query. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXaMKkf-njaoD8WVwWDi6cH9boN2OmEpTC_ebTrTd2IsNpepQYRHMpcdc9MGjRHENPgA2knmOUbFCfPk77KOH6KL5uzW7gq59RFzHv1P9cqPJSeo8AcRUPiBHuiOHETu1Bz4cl0AZ8Ro9LOgriKx80G_sxy-4vwk-mTEByzMWNFbhGXZnydpMuvAxZ2BY/s2333/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="482" data-original-width="2333" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXaMKkf-njaoD8WVwWDi6cH9boN2OmEpTC_ebTrTd2IsNpepQYRHMpcdc9MGjRHENPgA2knmOUbFCfPk77KOH6KL5uzW7gq59RFzHv1P9cqPJSeo8AcRUPiBHuiOHETu1Bz4cl0AZ8Ro9LOgriKx80G_sxy-4vwk-mTEByzMWNFbhGXZnydpMuvAxZ2BY/w640-h132/2.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">To produce a runnable query, we need to anchor this to a specific schema, and this is where Select AI comes in. By setting up a profile, you can by default use your local schema, but you can also optionally specify the schema(s) and the table(s) you want to be considered when generating queries. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">As depicted below, the original natural language query is augmented with metadata from schema(s) identified in the user’s profile. Feeding this to the LLM allows the LLM to produce a SQL query runnable against your database, and ideally provide the results you’re looking for. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj01QnDSoKEOwry97mIwFFbIqoN596za9ifXwEKtl7jsMdpBlrxH2QHvW5cxOJTg-6LnwMNkKKfrTMdpldSJk1_jrbVzHVicRrq2hs4EAfakf66mzLm0FkOy4JSmN2oUPb7XwQ6IROQhcxBoJezk0klyGtq5Ac8pmdsRzKEZvpCAtD2slL3cT9eNYMiPv8/s1698/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="671" data-original-width="1698" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj01QnDSoKEOwry97mIwFFbIqoN596za9ifXwEKtl7jsMdpBlrxH2QHvW5cxOJTg-6LnwMNkKKfrTMdpldSJk1_jrbVzHVicRrq2hs4EAfakf66mzLm0FkOy4JSmN2oUPb7XwQ6IROQhcxBoJezk0klyGtq5Ac8pmdsRzKEZvpCAtD2slL3cT9eNYMiPv8/w640-h252/3.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">We say ideally because even with an augmented prompt, LLMs aren’t perfect and so it will be important to vet the results from the query and possibly the query itself. </div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Examples using Select AI</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Let’s look at a few examples. We’ll start simply. How many customers in San Francisco are married? Using the keyword “AI”, we run the SQL command (shown here in OML Notebooks using the %sql interpreter) “SELECT AI how many customers in San Francisco are married”. We see the result as well as the SQL query generated by our LLM adding the keyword “showsql” after “SELECT AI”. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicshOjCV7sB0fP_mjjmV41CBukAuyKgtMX2HhE52FgaNHZr4Y8Eirce2irBJ00k_aK5tw0dpzIHJEtYYr_dMF4fGYcnr0JyYRF7HDDvrlSr2vleyi4gQU4JyxvHbiXRg3MdAaZ0AnA6rgxlG8CKUxVHXl4g4dYRLB-MWqymUwFKgutDQuDk2N5hCJ4Ybg/s1322/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="419" data-original-width="1322" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicshOjCV7sB0fP_mjjmV41CBukAuyKgtMX2HhE52FgaNHZr4Y8Eirce2irBJ00k_aK5tw0dpzIHJEtYYr_dMF4fGYcnr0JyYRF7HDDvrlSr2vleyi4gQU4JyxvHbiXRg3MdAaZ0AnA6rgxlG8CKUxVHXl4g4dYRLB-MWqymUwFKgutDQuDk2N5hCJ4Ybg/w640-h202/4.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3M2wPOmY8fQW8UlwlrEqh1pWNwlSOHFSvIB8k7vfi-ucSV6L_IsOkQK_qMN54cSHeoFHwDqfVwc4JKL7dZMfMufM2XREF3ahCLHHpn0eGUzXaVRpS4V-8yuZ56-zSP1LB4dHw_r1gh5f9-3xzHLtUcMnRzcDuk5ooi4ub-FhWP5ha96lq-KJx2NC34UM/s1346/5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="534" data-original-width="1346" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3M2wPOmY8fQW8UlwlrEqh1pWNwlSOHFSvIB8k7vfi-ucSV6L_IsOkQK_qMN54cSHeoFHwDqfVwc4JKL7dZMfMufM2XREF3ahCLHHpn0eGUzXaVRpS4V-8yuZ56-zSP1LB4dHw_r1gh5f9-3xzHLtUcMnRzcDuk5ooi4ub-FhWP5ha96lq-KJx2NC34UM/w640-h254/5.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">The next query highlights using the LLM’s broader knowledge. To “find the top 3 baby boomer big spenders” requires an understanding of what a “baby boomer” is, or more importantly, what date-of-birth years apply, and that finding the top 3 big spenders requires ordering by AMOUNT_SOLD. This finds those customers who buy big ticket items. The LLM draws on its broader understanding of these concepts to correctly generate an applicable query. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPDbVIxjM7WKmx1Zd66G_ktDfQckozQ9bNL9LrxDSp8SLN0ETIUCyEjSEj6RQ0fra7gPZgFvj_AQwqh1OdwglVb-MfyyULNWSf3r6LcG2yYQmtMldg9arc04dkd4MrstKiB_nQy9n0egqNDOjMxMOd2HhcmHYze3F3mwObDudpZte-p8keC0wCtJQ4vC0/s1332/6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="791" data-original-width="1332" height="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPDbVIxjM7WKmx1Zd66G_ktDfQckozQ9bNL9LrxDSp8SLN0ETIUCyEjSEj6RQ0fra7gPZgFvj_AQwqh1OdwglVb-MfyyULNWSf3r6LcG2yYQmtMldg9arc04dkd4MrstKiB_nQy9n0egqNDOjMxMOd2HhcmHYze3F3mwObDudpZte-p8keC0wCtJQ4vC0/w640-h380/6.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGkPR7fR6twMAZoReXnlDtGLEnTJkzuC4It2-e09rIdKedWmUloIyY0br4UcwdWEWl86U0AvY25ivcrZDpdmoIuu435fw1__21gcdWS1z-ofGL-OhZXFdYq1sa44pzPTiCa5LYFuyqK8QavoCP7QAWHvPNjKyMmxBEATejrWHAoA-xBi3YfLX8nJT1Zgo/s1325/7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="745" data-original-width="1325" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGkPR7fR6twMAZoReXnlDtGLEnTJkzuC4It2-e09rIdKedWmUloIyY0br4UcwdWEWl86U0AvY25ivcrZDpdmoIuu435fw1__21gcdWS1z-ofGL-OhZXFdYq1sa44pzPTiCa5LYFuyqK8QavoCP7QAWHvPNjKyMmxBEATejrWHAoA-xBi3YfLX8nJT1Zgo/w640-h360/7.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">You can use the chat option to interact with the LLM as you would a chatbot with a single message. In the following example, a developer may need to create a table. By describing the table you want, it generates a CREATE TABLE statement you can use directly or modify to suite your needs. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVHUQ2Pe5kwNM0OTqBJnYRlQKGpp91j1rk6DKmBkniv23hxY8nr2ISCVs_Wtdv6_qvnqQXhrcAjerUaDnDnFXmymKBcjfrbAZNpxjToxAOU4bgxxRfNK2cGbfa8Wqn4C6XdNWrR7gDEHNx6CQPBkkhOz2ftKKjH-dxkRNFjUTRpbN_qu3jGMZ4CHY0BAU/s1324/8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="572" data-original-width="1324" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVHUQ2Pe5kwNM0OTqBJnYRlQKGpp91j1rk6DKmBkniv23hxY8nr2ISCVs_Wtdv6_qvnqQXhrcAjerUaDnDnFXmymKBcjfrbAZNpxjToxAOU4bgxxRfNK2cGbfa8Wqn4C6XdNWrR7gDEHNx6CQPBkkhOz2ftKKjH-dxkRNFjUTRpbN_qu3jGMZ4CHY0BAU/w640-h276/8.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">You can also use ‘chat’ to ask “what is Oracle Autonomous Database?” or understand what a query is doing, as shown below. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiomsvuBEOkOnIotzawv0SspXXQ3G4pjuulV_2jVXQFYUJ_gav5o6gmy7WfdtXsviAnj7mGN6WJkTXDQ2f4UPxXVGbyRclUbGc6yK7pCzPOS4wdCrnmNRBmqLHSfagwOveQo1DT8PVr5kVpI_hGKnjL1drmtP28OsmtDv-86uydyJZmVYcAOOuy_t_1css/s1443/9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="822" data-original-width="1443" height="364" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiomsvuBEOkOnIotzawv0SspXXQ3G4pjuulV_2jVXQFYUJ_gav5o6gmy7WfdtXsviAnj7mGN6WJkTXDQ2f4UPxXVGbyRclUbGc6yK7pCzPOS4wdCrnmNRBmqLHSfagwOveQo1DT8PVr5kVpI_hGKnjL1drmtP28OsmtDv-86uydyJZmVYcAOOuy_t_1css/w640-h364/9.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>DBMS_CLOUD_AI Package</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Enabling this feature is a new package, DBMS_CLOUD_AI, in Autonomous Database that enables the use of LLMs for generating SQL from natural language prompts. The package provides access to user specified LLMs along with knowledge of the user’s accessible database metadata. This enables producing runnable SQL queries applicable to that schema. The DBMS_CLOUD_AI package currently integrates with AI providers such as OpenAI and Cohere, with others planned to follow. To use this feature, you need an account with the AI provider and must supply your API credentials to Autonomous Database. </div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Getting started</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">To get started with Select AI, sign into your Autonomous Database instance with administrator privileges and add your user (here MY_USER) to the ACL list and grant access to the DBMS_CLOUD_AI package:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">BEGIN </div><div class="separator" style="clear: both;"> DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(</div><div class="separator" style="clear: both;"> host => 'api.openai.com',</div><div class="separator" style="clear: both;"> ace => xs$ace_type(privilege_list => xs$name_list('http'),</div><div class="separator" style="clear: both;"> principal_name => 'MY_USER',</div><div class="separator" style="clear: both;"> principal_type => xs_acl.ptype_db)</div><div class="separator" style="clear: both;"> );</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">grant execute on DBMS_CLOUD_AI to MY_USER;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">Create a database credential to your AI provider account. In the case of OpenAI, the password is the uniquely generated token for API usage.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> DBMS_CLOUD.DROP_CREDENTIAL (</div><div class="separator" style="clear: both;"> credential_name => 'OPENAI_CRED');</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> DBMS_CLOUD.CREATE_CREDENTIAL(</div><div class="separator" style="clear: both;"> credential_name => 'OPENAI_CRED',</div><div class="separator" style="clear: both;"> username => 'OPENAI',</div><div class="separator" style="clear: both;"> password => '...' );</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">Create your DBMS_CLOUD_AI profile. Here, we list the schema(s) we want to be considered (e.g., SH) and, optionally, any tables (e.g., customers, sales, etc.).</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> DBMS_CLOUD_AI.drop_profile(profile_name => 'OPENAI');</div><div class="separator" style="clear: both;"> DBMS_CLOUD_AI.create_profile(</div><div class="separator" style="clear: both;"> profile_name => 'OPENAI',</div><div class="separator" style="clear: both;"> attributes => '{"provider": "openai",</div><div class="separator" style="clear: both;"> "credential_name": "OPENAI_CRED",</div><div class="separator" style="clear: both;"> "object_list": [{"owner": "SH", "name": "customers"}, </div><div class="separator" style="clear: both;"> {"owner": "SH", "name": "sales"},</div><div class="separator" style="clear: both;"> {"owner": "SH", "name": "products"},</div><div class="separator" style="clear: both;"> {"owner": "SH", "name": "countries"}]</div><div class="separator" style="clear: both;"> }');</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">Lastly, set your DBMS_CLOUD_AI profile, which must be done in each database session. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">BEGIN</div><div class="separator" style="clear: both;"> DBMS_CLOUD_AI.SET_PROFILE(</div><div class="separator" style="clear: both;"> profile_name => 'OPENAI'</div><div class="separator" style="clear: both;"> );</div><div class="separator" style="clear: both;">END;</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">Now, you’re ready to invoke your first Select AI prompt. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Note that if you're using a stateless environment, like the Database Actions SQL worksheet in Autonomous Database, use the DBMS_CLOUD_AI.GENERATE function in your SQL query. This allows you to specify the AI profile directly for a stateless invocation, as shown in the following example.</div></div></div></div></div></div></div></div></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7RZ0Y3uB1FBEJRuDangkB7QlX98iwYRePTalbPQTJXiv17Tl4do3BzLcGdC2oHFl_BcbunJSXAwRmEUxEi16VJ6qWc_6bkH0bFKzz7gbHMVLEBADhlpk8Y7bm62LbvFBoeFby8vbu6nAwxxWp5kuQ3nEgIwZyw-sRgwnn4UYCk_v7uB5vxWIJtGQ2cUI/s1369/10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" border="0" data-original-height="401" data-original-width="1369" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7RZ0Y3uB1FBEJRuDangkB7QlX98iwYRePTalbPQTJXiv17Tl4do3BzLcGdC2oHFl_BcbunJSXAwRmEUxEi16VJ6qWc_6bkH0bFKzz7gbHMVLEBADhlpk8Y7bm62LbvFBoeFby8vbu6nAwxxWp5kuQ3nEgIwZyw-sRgwnn4UYCk_v7uB5vxWIJtGQ2cUI/w640-h188/10.JPG" title="Introducing Select AI - Natural Language to SQL Generation on Autonomous Database" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Benefits and limitations</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The ability to generate SQL queries using natural language to get useful results sounds amazing. You get ease of use without SQL expertise. This feature is seamlessly integrated with your database and because it’s SQL, it readily integrates with your analytics tools and applications. It can help speed up the information retrieval process since you don’t have to write the SQL yourself or wait for a SQL expert to write it for you. The SQL is also specific to your database tables. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Despite how well LLMs perform – even with augmented prompts – they’re not perfect. As such, the results and possibly the corresponding queries should be reviewed before relying on the results. The way you write the prompt – as with any LLM interaction – can have a significant effect on the output. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">While large language models (LLMs) are adept at generating useful and relevant content, they also can generate incorrect and false information - known as hallucinations. This includes SQL queries that do not produce the desired results. As a result of being trained on a broad set of text documentation and content, typically from the Internet, LLMs may have incorporated patterns from invalid or malicious content, which may impact the accuracy and security of your results. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">As noted above, Select AI augments the user-specified prompt with database metadata to mitigate hallucinations from the LLM. The augmented prompt is then sent to the user specified LLM to produce the query. Select AI automates the process that the user could do manually.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-64748613170098873372024-02-12T11:19:00.000+05:302024-02-12T11:19:02.749+05:30Simplified Data Safe notifications improve data security visibility<div>Notifications in OCI provide a common, efficient infrastructure for operational alerts and application integration. OCI notifications are reliable, low latency, and implement a publish and subscribe paradigm that reduces the need for polling by connected applications. Setting up notifications from scratch can be challenging, however. This is why Data Safe now makes it easier to configure notifications. Notifications allow you to quickly set up and receive messages informing you about a variety of different events and conditions in <b><a href="https://dbexamstudy.blogspot.com/p/1z0-921-oracle-mysql-2021.html">Data Safe</a></b>. Best of all, you can now define notifications directly within the Data Safe console without navigating away from the feature you are working on. Notifications can improve operational security by alerting you with an email, SMS message, or Slack message when something in your database environment changes.</div><div><br /></div><h3 style="text-align: left;"><b>What are notifications?</b></h3><div><br /></div><div>To understand how we've made notifications easier to use, it’s necessary to first understand a little bit about how OCI notifications work. OCI notifications involve creating and associating OCI resources to create operational alerts. These resources include:</div><div><br /></div><div><ul style="text-align: left;"><li><b>Events –</b>structured messages that indicate changes in Data Safe resources.</li><li><b>Rules –</b>filter the stream of events to trigger actions such as notifications for selected event conditions.</li><li><b>Notifications –</b>messages that are created when some defined event that meets a rule’s condition is generated in OCI.</li><li><b>Topics –</b>communication channels that are used to forward notifications to endpoints.</li><li><b>Subscriptions –</b>endpoints to which notification messages are sent. For example, a subscription endpoint could be an email address, phone number, or Slack channel.</li></ul></div><div><br /></div><div>Putting it all together, an event that meets conditions defined by a rule triggers a notification that is sent to subscribers of a topic.</div><div><br /></div><div>We've added contextual notifications to the Data Safe console to make setting up notifications easy for users. We are calling these contextual notifications because the events you choose from are now displayed within the context of the Data Safe function you are working with. No more scrolling through hundreds of different events trying to find the ones that are relevant to you!</div><div><br /></div><div>A new notifications tab can be found in the various features of Data Safe, allowing you to create and manage notifications for a Data Safe feature while working in the context of that feature. You will find notification tabs in many areas of the Data Safe console, for example:</div><div><br /></div><div><ul style="text-align: left;"><li>User assessment</li><li>Security assessment</li><li>Discovery</li><li>Masking</li><li>Activity auditing</li><li>SQL Firewall</li></ul></div><div><br /></div><div>To make getting started with notifications even easier, we created quick-start templates for the most common use cases. Let's look at an example of creating a simple but useful notification to show you how this works.</div><div><br /></div><h3 style="text-align: left;"><b>Security configuration drift.</b></h3><div><br /></div><div>Many data breaches can trace their cause to administrator error. A frequent source of that error is configuration drift. A setting or parameter is changed – often to facilitate troubleshooting or solve an urgent operational issue – and that change weakens the system's security. Data Safe helps you identify this type of "drift" away from an approved security baseline, and notifications can bring that drift quickly to your attention. Let's use the new notifications capability to email us if Data Safe spots configuration drift. We first open the Security assessment page and click the new notifications tab.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg98TqrXqn3tw1gJHZBDDlg7ziBdXAT68fCePqxzp1zpd0CNwGZVEI9z_p4ex-E8BCpYYyDRMYAaWEC7Tf__KuvXrcph-v1B2IyvvpJM-aszwuERBKJNFRC9un6Da4XCposX6ToXfZUPVO0Az0h9mcFxfWVc1KQKySmugnRsXjX19E54YBSPbYd-qyA3EY/s1122/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Simplified Data Safe notifications improve data security visibility" border="0" data-original-height="765" data-original-width="1122" height="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg98TqrXqn3tw1gJHZBDDlg7ziBdXAT68fCePqxzp1zpd0CNwGZVEI9z_p4ex-E8BCpYYyDRMYAaWEC7Tf__KuvXrcph-v1B2IyvvpJM-aszwuERBKJNFRC9un6Da4XCposX6ToXfZUPVO0Az0h9mcFxfWVc1KQKySmugnRsXjX19E54YBSPbYd-qyA3EY/w640-h436/1.png" title="Simplified Data Safe notifications improve data security visibility" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">On the notifications tab we see quick start templates – these are ready-to-go notification policies that make sense in the context of the Data Safe area you are working in. We’ll click A security assessment has drifted from baseline to create our notification.</div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBtxlNriR8esM_NCAsHZr0Ug3S_TcEXET8qO4TbMKvUBR9GjzidBiapxYir3WKp-Ue6OJIFg-jCuuKrpsaN5xZqQdsHIFqosiS6QPkg-s0Xm-cM1GKEu5wr2s9F8OdDy9xg2WzCkHs6EaG3oPC_CyMuLTsUXdk284ZXX-twpeSqs-d5o05A0eynz1BHo8/s872/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Simplified Data Safe notifications improve data security visibility" border="0" data-original-height="860" data-original-width="872" height="632" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBtxlNriR8esM_NCAsHZr0Ug3S_TcEXET8qO4TbMKvUBR9GjzidBiapxYir3WKp-Ue6OJIFg-jCuuKrpsaN5xZqQdsHIFqosiS6QPkg-s0Xm-cM1GKEu5wr2s9F8OdDy9xg2WzCkHs6EaG3oPC_CyMuLTsUXdk284ZXX-twpeSqs-d5o05A0eynz1BHo8/w640-h632/2.png" title="Simplified Data Safe notifications improve data security visibility" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">To create our notification, we add three things to the template:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li><b>Name of the notification rule –</b> this is what you want to call the notification, and it will appear in the email you get when security drift occurs</li><li><b>Topic name –</b> this is what you will call the OCI resource to which you’ll add notification subscriptions. Something to watch out for when entering a topic name is that there can be no spaces in the topic name.</li><li><b>Subscription –</b> these are the locations to which you want notification messages to be sent. The most common form of subscription is an email, so you would enter an email address. Other types of subscriptions include SMS or Slack messages, RESTful API calls, or calls to OCI functions.</li></ul></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">That’s all it takes – click Create notification, and the next time Data Safe detects that the most recent security assessment doesn’t match the baseline, you’ll get an email letting you know.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Note: for email subscriptions, Data Safe will first send an email to the address you entered asking you to confirm you wish to subscribe to the notification. Until you confirm the subscription, Data Safe will not actually send a notification email to that address.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Where can you find notifications within Data Safe?</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You’ll find the new notification tabs throughout Data Safe – wherever it makes sense in the context of the screen you are working with to proactively notify you that something has changed. These include:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li>Security Assessment</li><li>User Assessment</li><li>Data Discovery – Sensitive data models</li><li>Data Masking – Masking policies</li><li>Activity auditing – Audit profiles, policies, trails, Archive data retrievals, and reports</li><li>SQL Firewall</li><li>Alerts – Reports and Target-policy associations</li></ul></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Notifications work the same way throughout Data Safe except for Target-policy associations in the alert console. We'll look at an example of that next.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Target-policy notifications.</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Data Safe includes several predefined alert policies for conditions like SQL Firewall violations, user profile changes, user entitlement changes, etc. When Data Safe detects the conditions defined by one of these policies, an alert is created, which you can view in the All alerts report. Alerts can also trigger an alarm, which in turn can be used to trigger a notification. Target-policy associations allow you to enable an alert policy for a Data Safe target database.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiPpdchB6ehPEDgI9SzdLvLmtkS4qLWOIVk4LKiJuiJ_7BF4xVTwNsy1LdLt7J70cqUUcbfWbLGosdEs35YzbHkAZQcw3-GJ6sj-u-S4SpfhUCFRzc1zMPgwO03dndHEIIuBia-4bmIHOkVfJ-wiWnZ0H6ZQTLikVuma1-x2wzA2CeaAVa4j4MA_B0cBk/s896/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Simplified Data Safe notifications improve data security visibility" border="0" data-original-height="404" data-original-width="896" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiPpdchB6ehPEDgI9SzdLvLmtkS4qLWOIVk4LKiJuiJ_7BF4xVTwNsy1LdLt7J70cqUUcbfWbLGosdEs35YzbHkAZQcw3-GJ6sj-u-S4SpfhUCFRzc1zMPgwO03dndHEIIuBia-4bmIHOkVfJ-wiWnZ0H6ZQTLikVuma1-x2wzA2CeaAVa4j4MA_B0cBk/w640-h288/3.png" title="Simplified Data Safe notifications improve data security visibility" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">At first glance, these are similar to other notifications – two quick start templates are defined.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li>An alert was generated – this will send a notification anytime Data Safe detects an alert triggered for any target database with an alert policy associated with it</li><li>More than 1000 alerts were generated in 5 minutes – this is just what it sounds like – Data Safe will send you a notification if more than 1,000 alerts are triggered within five minutes. That can be for ANY of your targets, and the 1,000 count is cumulative across them.</li></ul></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">These predefined templates make sense for Data Safe instances with just a few target databases. But as the number of target databases increases, the number of alerts generated in the system may also increase, and it might make sense to define your notification more narrowly. Let's take a look at a common use case – user entitlements.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Advanced alert notifications</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">We’re going to narrow down the conditions Data Safe will check to send us an alert so that we don’t receive notifications for things we don’t care about. In the case of user entitlement changes, I might only care if a new entitlement is granted, but not care if an entitlement is revoked. To create this kind of custom notification, we will click Create notification (the grey button) instead of using one of the templates. Then, we’ll click Advanced alarm notification. This opens a form where we can create our advanced notification. In the screenshot below you’ll see that I’ve added callouts to indicate where changes are entered into the form – for this use case, there are eight of them. That number will vary depending on how many rules you create.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ol style="text-align: left;"><li>Alarm name – similar to the simplified notification templates like Security assessment drift from baseline, this is just what you want to call your notification. It appears as the description field in a notification message.</li><li>Event type – there is only one choice here, Alert Generated.</li><li>Click + Another condition to add a new condition. We’ll select Attribute for the condition, and then displayName for the attribute name. In Attribute values enter “User entitlement changes” – this is the name of the alert policy. You can find a list of alert policy names in the Alert policies resource page.</li><li>Click + Another condition to add a second condition. This time, we'll select operation, and enter GRANT as the value we want to look for.</li><li>Metric – Choose DeliverySucceedEvents and leave the rest of the fields at their default values.</li><li>Trigger rule – This is where you select how many alarms need to occur before you will be notified. In this case, we want a notification anytime someone grants a new privilege, so we’ll choose “equal to” for the Operator, set the Value to one, and enter a Trigger delay in minutes of one.</li><li>Now we are back on familiar ground – enter a topic name (don’t forget – no spaces allowed).</li><li>Enter the email address you want to receive the notification.</li></ol></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Click Create notification and you’re done! You’ll be notified whenever Data Safe detects a user entitlement change AND that change is a grant.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">By stacking different conditions you can narrow your notification focus to just those alerts you care about, reducing the “noise” of unnecessary notifications.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Note: conditions are always cumulative – always an “and” operation. There is no ability to have an “or” or “not” condition.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7SDqC63l-IAP6qz-V0EIheZS6lti00UusCGtEyLC-mRk62VPUAcu-GCKq5RRpx0SORpfEjP7c2GWUlIrg7IgD6y-A1QO2jUOy7fVJeHNvONt4p1PzenQ_k4fpv1i1Yb1VPdyzCwn1iluSMXVThyphenhyphenC7qaCN2pDZ_3xQk6YX9EExNm49IPigYWM-ZCCWSvc/s1364/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Simplified Data Safe notifications improve data security visibility" border="0" data-original-height="1364" data-original-width="887" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7SDqC63l-IAP6qz-V0EIheZS6lti00UusCGtEyLC-mRk62VPUAcu-GCKq5RRpx0SORpfEjP7c2GWUlIrg7IgD6y-A1QO2jUOy7fVJeHNvONt4p1PzenQ_k4fpv1i1Yb1VPdyzCwn1iluSMXVThyphenhyphenC7qaCN2pDZ_3xQk6YX9EExNm49IPigYWM-ZCCWSvc/w416-h640/4.png" title="Simplified Data Safe notifications improve data security visibility" width="416" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">And that’s all there is to it. Notifications are extremely flexible and can be tailored for a wide variety of use cases. If you’d like to see the new feature in operation, <b><a href="https://www.youtube.com/watch?v=stTuCKkI-_E" target="_blank">here is a short video that walks you through several ways of using it.</a></b> </div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-66786808975942801032024-02-09T11:09:00.000+05:302024-02-09T11:09:05.957+05:30Oracle Globally Distributed Database supports RAFT Replication in Oracle Database 23c<div>Distributed databases are gaining increasing popularity and significance due to their capacity to manage large and intricate datasets, scalability, flexibility, and compatibility with contemporary application designs and architectures. As organizations embrace cloud-based solutions and microservices-based architectures, there is an anticipated surge in the demand for distributed databases. Businesses are on a continual quest for innovative database solutions that facilitate horizontal scalability, ensure data durability, and maintain high availability while adopting more adaptable strategies.</div><div><br /></div><div>Scaling databases is imperative for handling transactional volume and ensuring optimal performance. Additionally, in an increasingly global business landscape, geographic scaling is crucial to tailor services to customers located in different parts of the world.</div><div><br /></div><div>Resilience is a vital consideration when scaling databases, as businesses strive to guarantee survival in the event of the failure of an entire <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html">Availability Zone/Availability Domain (AZ/AD)</a></b> or cloud provider.</div><div><br /></div><div>The escalating demand for distributed databases, coupled with the necessity for horizontal and geographic scaling, is propelling businesses toward adopting next-generation methodologies such as Oracle Distributed Database. This ensures efficient performance and resilience, meeting the expectations of modern consumers. Oracle Distributed Database functions as a data distribution system, employing advanced techniques to partition data across multiple servers or shards, thereby delivering exceptional performance, availability, and scalability.</div><div><br /></div><div>Oracle Database 23c introduces a noteworthy feature in the form of Raft replication, a consensus-based replication protocol that facilitates automatic configuration of replication across all shards. Raft replication seamlessly integrates with applications, providing transparency in its operation. In case of shard host failures or dynamic changes in the distributed database's composition, Raft replication automatically reconfigures replication settings. The system takes a declarative approach to configure the replication factor, ensuring a specified number of replicas are consistently available.</div><div><br /></div><div>Swift failover is a key attribute of Raft replication, enabling all nodes to remain active even in the event of a node failure. Notably, this feature incorporates an automatic sub-second failover mechanism, reinforcing both data integrity and operational continuity. Such capabilities make this feature well-suited for organizations seeking a highly available and scalable database system.</div><div><br /></div><div>When Raft replication is enabled, a distributed database contains multiple replication units. A replication unit (RU) is a set of chunks that have the same replication topology. Each RU has multiple replicas placed on different shards. The Raft consensus protocol is used to maintain consistency between the replicas in case of failures, network partitioning, message loss, or delay.</div><div><br /></div><div><b>Replication Unit</b></div><div><br /></div><div>When Raft replication is enabled, a distributed database contains multiple replication units. A replication unit (RU) is a set of chunks that have the same replication topology. Each RU has three replicas placed on different shards. The Raft consensus protocol is used to maintain consistency between the replicas in case of failures, network partitioning, message loss, or delay.</div><div><br /></div><div>Each shard contains replicas from multiple RUs. Some of these replicas are leaders and some are followers. Raft replication tries to maintain a balanced distribution of leaders and followers across shards. By default each shard is a leader for two RUs and is a follower for four other RUs. This makes all shards active and provides optimal utilization of hardware resources.</div><div><br /></div><div><b>Raft Group</b></div><div><br /></div><div>Each replication unit contains exactly one chunk set and has a leader and a set of followers, and these members form a raft group. The leader and its followers for a replication unit contain replicas of the same chunk set in different shards as shown below. A shard can be the leader for some replication units and a follower for other replication units.</div><div><br /></div><div>All DMLs for a particular subset of data are executed in the leader first, and then are replicated to its followers.</div><div><br /></div><div><b>Replication Factor</b></div><div><br /></div><div>The replication factor (RF) determines the number of participants in a RAFT group. This number includes the leader and its followers.</div><div><br /></div><div>The RU needs a majority of replicas available for write.</div><div><br /></div><div><ul style="text-align: left;"><li>RF = 3: tolerates one replica failure</li><li>RF = 5: tolerates two replica failures</li></ul></div><div><br /></div><div>In Oracle Globally Distributed Database , the replication factor is specified for the entire database, that is all replication units in the database have the same RF. The number of followers is limited to two, thus the replication factor is three.</div><div><br /></div><div><b>Raft Log</b></div><div><br /></div><div>Each RU is associated with a set of Raft logs and OS processes that maintain the logs and replicate changes from the leader to followers. This allows multiple RUs to operate independently and in parallel within a single shard and across multiple shards. It also makes it possible to scale the replication up and down by changing the number of RUs.</div><div><br /></div><div>Changes to data made by a DML are recorded in the Raft log. A commit record is also recorded at the end of each user transaction. Raft logs are maintained independently from redo logs and contain logical changes to rows. Logical replication reduces failover time because followers are open to incoming transactions and can quickly become the leader.</div><div><br /></div><div>The Raft protocol guarantees that followers receive log records in the same order they are generated by the leader. A user transaction is committed on the leader as soon as half of the followers acknowledge the receipt of the commit record and writes it to the Raft log.</div><div><br /></div><div><b>Transactions</b></div><div><br /></div><div>On a busy system, multiple commits are acknowledged at the same time. The synchronous propagation of transaction commit records provides zero data loss. The application of DML change records to followers, however, is done asynchronously to minimize the impact on transaction latency.</div><div><br /></div><div><b>Leader Election Process</b></div><div><br /></div><div>Per Raft protocol, if followers do not receive data or heartbeat from the leader for a specified period of time, then a new leader election process begins.</div><div><br /></div><div>The default heartbeat interval is 150 milliseconds, with randomized election timeouts (up to 150 milliseconds) to prevent multiple shards from triggering elections at the same time, leading to split votes.</div><div><br /></div><div><b>Node Failure</b></div><div><br /></div><div>Node failure and recovery are handled in an automated way with minimal impact on the application.</div><div><br /></div><div>The failover time is sub-3 seconds with less than 10 millisecond network latencies between Availability Zones. This includes failure detection, shard failover, change of leadership, application reconnecting to new leader, and continuing business transactions as before.</div><div><br /></div><div>The impact of the failure on the application can further be abstracted by configuring retries in JDBC driver and end customer experience will be that a particular request took longer rather than getting an error.</div><div><br /></div><div>The following is an illustration of a distributed database with all three shards in a healthy state. Applications requests are able to reach all three shards, and replication between the leaders and followers is ongoing between the shards.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUJq2wsa1nkuutqlFtQofolK9vSkUbbImCUBSrA7pYxgOEO8RrzRlpfnuQsKlU_d4sfsf34HrI4R7NFUEKlI8W64Zch7psqr9srAk5z019r4mJp9QYanvYfYLrBF3Yce4mrs6Yf6UxvM3Ap_QXS1zdO1tH5iX0NjaSRxfM93vKkdW2vo-2THPvkUrK6BM/s808/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Globally Distributed Database supports RAFT Replication in Oracle Database 23c" border="0" data-original-height="712" data-original-width="808" height="564" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUJq2wsa1nkuutqlFtQofolK9vSkUbbImCUBSrA7pYxgOEO8RrzRlpfnuQsKlU_d4sfsf34HrI4R7NFUEKlI8W64Zch7psqr9srAk5z019r4mJp9QYanvYfYLrBF3Yce4mrs6Yf6UxvM3Ap_QXS1zdO1tH5iX0NjaSRxfM93vKkdW2vo-2THPvkUrK6BM/w640-h564/1.png" title="Oracle Globally Distributed Database supports RAFT Replication in Oracle Database 23c" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b>Leader Node Failure</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">When the leader for a replication unit becomes unavailable, followers will initiate a new leader election process using the Raft protocol.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">As long as a majority of the nodes (quorum) are still healthy, the Raft protocol will ensure that a new leader is elected from the available nodes.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">When one of the followers succeeds in becoming the new leader, proactive notifications are sent from the shard to the client driver of leadership change. The client driver starts routing the request to the new leader shard. Routing clients (such as UCP) are notified using ONS notifications to update their shard and chunk mapping, ensuring that they route traffic to the leader.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">During this failover and reconnection period, the application could be configured to wait and retry with the retry interval and retry counts settings at the JDBC driver configuration. These are very similar to the present RAC instance failover configuration.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Upon connecting to new leader, the application will continue to function as before.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The following diagram shows that the first shard failed, and that a new leader for the replication unit whose leader was once on that first shard has been replaced by a new leader in the second shard.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEdPbpqfaTGSUMZQayMNBgY7nu4pbl_lVdpYeFlcLMJjbT-6F_qs83cvG-My-w4Vxo2zdfPyFIrTgQWCnzyeZUIqaOUnt3VdLYMHJVBVqQB2QIactiacyzWCRzQNBrRyHQYGFnyxWtqMDS6Jz1guAM7Uw_-BT2cVTtIeeVX8HTjzDJhUTzpzKOONS1Akg/s808/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Globally Distributed Database supports RAFT Replication in Oracle Database 23c" border="0" data-original-height="712" data-original-width="808" height="564" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEdPbpqfaTGSUMZQayMNBgY7nu4pbl_lVdpYeFlcLMJjbT-6F_qs83cvG-My-w4Vxo2zdfPyFIrTgQWCnzyeZUIqaOUnt3VdLYMHJVBVqQB2QIactiacyzWCRzQNBrRyHQYGFnyxWtqMDS6Jz1guAM7Uw_-BT2cVTtIeeVX8HTjzDJhUTzpzKOONS1Akg/w640-h564/2.png" title="Oracle Globally Distributed Database supports RAFT Replication in Oracle Database 23c" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">Oracle Globally Distributed Database provides commands and options in the GDSCTL CLI to enable and manage Raft replication in a system-managed sharded database.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-10822650647975713782024-02-07T11:08:00.004+05:302024-02-07T11:40:57.072+05:30Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit<div>We’re proud to announce the general availability of <a href="https://www.oracle.com/cloud/azure/oracle-database-at-azure/" target="_blank">Oracle Database@Azure</a>, a joint Oracle and Microsoft service that allows customers to easily provision, access, and operate enterprise-grade Oracle database services as native resources directly in Microsoft Azure. Customers can purchase Oracle Database@Azure in the Azure Marketplace and apply their Oracle database cost directly to their <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html">Microsoft Azure Consumption Commitment (MACC)</a></b>.</div><div><br /></div><div>In this blog post, we provide a detailed explanation of provisioning and management.</div><div><br /></div><h3 style="text-align: left;"><b>Service overview</b></h3><div><br /></div><div>Since 2019, we have partnered with Microsoft to deliver the Oracle Interconnect for Azure, which offers secure, private interconnections with sub-2 millisecond latency, in 12 global regions to date. This high-performance network foundation enables customers to build applications with components straddling OCI and Azure. However, the flexibility to connect any resource in either cloud requires customers to configure and manage the connections between the cloud environments, DNS entries, and more.</div><div><br /></div><div>With Oracle Database@Azure, Oracle and Microsoft deliver the same Oracle Database services that run on OCI, physically in Microsoft Azure data centers. By collocating OCI database services in Azure data centers, Oracle Database@Azure has low latencies like other Azure services, and provides the same high levels of performance, scale, security, and availability that we offer in OCI today. In a few steps, you can procure, deploy, and manage the service through the existing Azure portal, use Azure developer tools, software development kits (SDKs), and APIs. Metrics, logs, and events for the Oracle databases you create using the service will be available in Azure tooling for unified telemetry and monitoring in Azure environments.</div><div><br /></div><div>We’ve made it easier for customers to migrate and modernize their Oracle Database workloads to Azure. With Oracle Database services running locally in Azure, you can benefit from proximity to familiar application development tools and frameworks to modernize your workloads and run cloud native applications with direct access to data in Oracle databases with the same security and compliance across the entire solution.</div><div><br /></div><div><b>Purchasing</b></div><div><br /></div><div>Purchasing Oracle Database@Azure is a simple process, facilitated by private offer in the Azure Marketplace. Azure permissions might be required for the user completing the private offer purchase.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBB-ASX3Xq38KiBiVw9xYT8pPTeuUFX11IAFc75sYE5wwkZ9svXY6A6YN0aLJg-Rdr1egMyggZwmaWV6PVMk3RQUebWdYAFoVgMdc6W1B20uV65v5keWr4lrpbMvOiEAKdBt1sZIR66seFUJy5c7xM_8fblfqyeFFfweZB-IJldDFxfKCBaSl27uK6164/s720/1.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="385" data-original-width="720" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBB-ASX3Xq38KiBiVw9xYT8pPTeuUFX11IAFc75sYE5wwkZ9svXY6A6YN0aLJg-Rdr1egMyggZwmaWV6PVMk3RQUebWdYAFoVgMdc6W1B20uV65v5keWr4lrpbMvOiEAKdBt1sZIR66seFUJy5c7xM_8fblfqyeFFfweZB-IJldDFxfKCBaSl27uK6164/w640-h342/1.jpg" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b>Private offer for database consumption</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">All who purchase Oracle Database@Azure must have a private offer created and made available in the Azure marketplace. To have your private offer created, existing Oracle customers can reach out to their Sales Representative.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Private offers for Oracle Database@Azure can be completed in a week for actively engaged customers. Working with your sales representative, you can customize a quote based on your specific needs, then sign and approve. Oracle then generates your private offer in the Azure marketplace. To access your private offer, log in to the Azure marketplace and view your private offers or use the Oracle-provided offer ID through your email. Move through a few screens to accept your private offer, and you can start provisioning Oracle Database@Azure directly from your Azure portal.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You must provide your Azure billing account ID to your Oracle sales representative to ensure single invoicing for the service from Azure. You can find your billing account ID through one of the following methods:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">◉ Contact your Azure sales representative</div><div class="separator" style="clear: both;">◉ Run a <a href="https://learn.microsoft.com/en-us/marketplace/private-offers-pre-check" target="_blank">private offers precheck report</a></div><div class="separator" style="clear: both;">◉ In the Azure portal, select <a href="https://learn.microsoft.com/en-us/marketplace/find-billing-account-id" target="_blank">Cost management + Billing, Properties, and then ID.</a></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Existing Azure and Oracle agreements are eligible for use with Oracle Database@Azure including MACCs, license included, or Bring Your Own License (BYOL). Database consumption from the service might also be eligible for Oracle Support Rewards. The Oracle databases you provision through the Oracle Database@Azure service apply to your existing Azure agreements just like other native Azure resources—no extra agreement required. If you aren’t an existing Azure customer, select Get Started on the Azure or Oracle webpage to create an account or contact an Azure Sales Representative. </div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Onboarding</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The following summary shows the onboarding process for Oracle Database@Azure with components in the Azure portal and the Oracle Cloud Console. Detailed explanations for many of the tasks are linked throughout this summary. Oracle and Azure specialists are available to address questions and provide any required support.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>OCI tenancy</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">An OCI tenancy is required for billing orchestration, some database management tasks, such as provisioning and management of container databases, and for Oracle to provide infrastructure and software maintenance updates for your database service. You can create an OCI tenancy or link an existing tenancy to your Azure subscription. Click the corresponding link in the welcome email you received upon completing private offer acceptance.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB5K2AzZZ-nsqaeTqUwnmFEl6wd1LFVVv0mpb43_zlyCU0PZ8x4Fpk0N_a-1BRvedmCu5l7zH6oQeyMa5v-j8MOLHWTK8jDJSUw-mtWwxpIkMl3AvM_vts1qw5RQ6QGDH0S3dZGNtzsEeJiS4eZyKXY-2sHrKo4JbVBN7q2esEPhQDpBuDHimIGArHLLA/s1024/2.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="463" data-original-width="1024" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB5K2AzZZ-nsqaeTqUwnmFEl6wd1LFVVv0mpb43_zlyCU0PZ8x4Fpk0N_a-1BRvedmCu5l7zH6oQeyMa5v-j8MOLHWTK8jDJSUw-mtWwxpIkMl3AvM_vts1qw5RQ6QGDH0S3dZGNtzsEeJiS4eZyKXY-2sHrKo4JbVBN7q2esEPhQDpBuDHimIGArHLLA/w640-h290/2.jpg" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b>Identity federation</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">We recommend federating identities between Entra ID and OCI to reduce the overhead of managing two identity directories. This federation allows users to access their OCI account with an Azure login and helps enforce the same identity structure across both cloud providers. Oracle Database@Azure uses two sets of groups with specific policies: Groups in Azure and </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Groups in OCI. To set up federation, the Azure user must have the following Entra ID privileges:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">◉ <a href="https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#external-identity-provider-administrator" target="_blank">External identity provider administrator</a></div><div class="separator" style="clear: both;">◉ <a href="https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#groups-administrator" target="_blank">Groups administrator</a></div><div class="separator" style="clear: both;">◉ <a href="https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#user-administrator" target="_blank">User administrator</a></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">To complete manual federation setup between Azure and OCI, follow the <a href="https://docs.oracle.com/en-us/iaas/Content/multicloud/signup_guided_federation.htm" target="_blank">Identity Federation guide</a>.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">If you choose not to federate your OCI tenancy with Azure's identity service, you might need to create and maintain separate credentials for accessing the Oracle Cloud Console using the OCI Identity and Access Management (IAM) service.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Groups and roles</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">To ensure proper operation and permissions for the service, you must create groups, roles, and attached policies in Azure and OCI. Groups in Azure include infra-admins, virtual machine (VM) cluster admins, and others to administrate Exadata database resources and VM clusters in Azure. Other groups with attached policies are replicated in OCI during federation. Roles in Azure include database owner, and infra-amin, VM cluster admin, subscription manager, and database reader. Standard permissions apply, including read, write, delete, and action. Groups and policies are also created in OCI to manage database actions.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Provisioning</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Provisioning Oracle Database@Azure resources is streamlined requiring a few simple steps in each portal, such as creating infrastructure and VM clusters in Azure and creating databases in the Oracle Cloud Console. Established workflows in the Azure portal and Oracle Cloud Console guide through each step. The summarize steps are included with links for readers seeking more details. Reach out to your Sales Representative if you want to chat with an engineering specialist.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Creating a resource</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You can deploy resources directly from the Azure portal. Select Oracle Database@Azure from the Azure services on the home page, or search for Oracle Database@Azure in the search bar.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi44_yztBMQ2cp2tA8yvCA8Hs_6vCSO_5ILqkymjOfPSm92kf4gUrFOZtY6GzcgVMJdXMNwauRIwLdscC9gje66QtURCEKYmxQdrxGbk9FYTdoFN3x2C3lYwMqpZ_g-fgfNBNwkmo-RXLbEmN3S6jAueE4RPEVea5yrR3rDWs6VUhDFykY6AsudG3_aSuU/s1024/3.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="575" data-original-width="1024" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi44_yztBMQ2cp2tA8yvCA8Hs_6vCSO_5ILqkymjOfPSm92kf4gUrFOZtY6GzcgVMJdXMNwauRIwLdscC9gje66QtURCEKYmxQdrxGbk9FYTdoFN3x2C3lYwMqpZ_g-fgfNBNwkmo-RXLbEmN3S6jAueE4RPEVea5yrR3rDWs6VUhDFykY6AsudG3_aSuU/w640-h360/3.jpg" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">As a prerequisite, the user must be part of the Exadata infrastructure administrators group in Azure and have sufficient limits assigned to the region.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">On the Oracle Database@Azure overview page, you can access tutorials, create Oracle Exadata infrastructure, VM clusters, and more. Selecting Create cloud Exadata infrastructure opens the following flow for infrastructure creation:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ol style="text-align: left;"><li>Basics: Select the Azure subscription, assign to a new or existing resource group, name the infrastructure, select a region, and select an availability zone.</li><li>Configuration: The infrastructure model defaults to Exadata X9M. Customize the number of database servers (2–32) and storage servers (3–64) you need. OCPUs and storage (in TBs) automatically populate based on your selection.</li><li>Maintenance: Set your maintenance method, schedule, and points of contact (up to 10).</li><li>Consent: Agree to terms of use, privacy policy, and access permissions.</li><li>Tags: Enter a name and value for your infrastructure resource.</li><li>Review and create: Validate all information and create resource.</li></ol></div><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>Provisioning an Exadata VM cluster</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">From the home page or Oracle Database@Azure page, you can quickly provision VM clusters.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvEq-seuuiJBBKAnNie9Ho5twBKlKMzi3txm1aIsBeRFiB5xMVvxI3_MVAwwHpZaoNWMK_xIPvY5hyphenhyphenaI4snJuxX_7bH6eLzslawU8sLPV9wiTkG1IceE8UTsccC-jkIdjTvoMZL7iqtdPYovHBRd8RO83TXSj_xxCNnEs72AFd_Az8PPrAtDWb6ysb2E/s1024/4.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="731" data-original-width="1024" height="456" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvEq-seuuiJBBKAnNie9Ho5twBKlKMzi3txm1aIsBeRFiB5xMVvxI3_MVAwwHpZaoNWMK_xIPvY5hyphenhyphenaI4snJuxX_7bH6eLzslawU8sLPV9wiTkG1IceE8UTsccC-jkIdjTvoMZL7iqtdPYovHBRd8RO83TXSj_xxCNnEs72AFd_Az8PPrAtDWb6ysb2E/w640-h456/4.jpg" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">For prerequisites, ensure the appropriate permissions for VM cluster admins and Oracle Database@Azure, and create a virtual network (vNet) with two <a href="https://learn.microsoft.com/en-us/azure/virtual-network/subnet-delegation-overview" target="_blank">delegated</a> subnets to Oracle Database@Azure. It requires the following permissions for an Oracle Database@Azure subscription:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li>Microsoft.Network/virtualNetworks/*</li><li>Microsoft.Network/virtualNetworks/subnets/*</li></ul></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">On the Oracle Exadata VM Clusters tab of the Oracle Exadata Database@Azure page, click the Create link. Like Exadata infrastructure creation, the following multistep process displays:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ol style="text-align: left;"><li>Basics: Select the Azure subscription, resource group (new or existing), name the cluster, select region, select infrastructure, license type, time zone, and set security with SSH keys and key pair name.</li><li>Configuration: Select compute count, system shape, OCPU count per VM, memory per VM, and local storage per VM. Total OCPU count, requested memory, and local storage are computed based on the local values that you accept or select. Exadata sparse snapshots, and local backups are options that can only be set at this time before the Oracle Exadata VM cluster has been provisioned.</li><li>Networking; Enter virtual network, client subnet, and DNS information.</li><li>Diagnostics collection: Events, health monitoring, logs, and tracing are selected by default. Change if required.</li><li>Consent: Agree to terms of use, privacy policy, and access permissions.</li><li>Tags: Enter a name and Value for your infrastructure resource.</li><li>Review and create: Validate all information and create resource.</li></ol></div><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>Create a database</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Database creation, deletion, and management is facilitated in the Oracle Cloud Console. Navigation through single sign-on (SSO) is provided in the Azure portal on the Resource page for the VM Cluster you want to connect. To proceed, on the VM Cluster overview page in the Azure portal, select “Go to OCI.”</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp1IG_UIS-mu0j69Tkvnw74kKnoWM1UpSvLf6KP7rSV59z1sCtVM8qmpLrMGLSm7IfAg48c0bSw1kvJm2ZKeH6hJ6oxjQ6LX22YklmQR3CPZxjKkiYZ8uEMfP7zs9xMFN2vV5tiLVWhIIgve0Tj0ys3ySDZpQzP-tg2VbvaIyoAboqZOn4X0k_rwSZlCc/s720/9.png" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="386" data-original-width="720" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp1IG_UIS-mu0j69Tkvnw74kKnoWM1UpSvLf6KP7rSV59z1sCtVM8qmpLrMGLSm7IfAg48c0bSw1kvJm2ZKeH6hJ6oxjQ6LX22YklmQR3CPZxjKkiYZ8uEMfP7zs9xMFN2vV5tiLVWhIIgve0Tj0ys3ySDZpQzP-tg2VbvaIyoAboqZOn4X0k_rwSZlCc/w640-h344/9.png" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFrU3Nv1s3BLABU1S7DhImLX1tjDKjY92WkR4KxjP8e8HZ7vHqqL76ob_b_NhJamyM645pnwuXDjbuVLu6fr_vx_ElmV-bJanNqaHKLJH5nIoRarQGVRlh5UgPtNyeOwk3wslB-q0CZia_Kbj280fqk867sZuNXZmGQfCyxJILyVZlZkVri_-xf713apg/s720/6.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="405" data-original-width="720" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFrU3Nv1s3BLABU1S7DhImLX1tjDKjY92WkR4KxjP8e8HZ7vHqqL76ob_b_NhJamyM645pnwuXDjbuVLu6fr_vx_ElmV-bJanNqaHKLJH5nIoRarQGVRlh5UgPtNyeOwk3wslB-q0CZia_Kbj280fqk867sZuNXZmGQfCyxJILyVZlZkVri_-xf713apg/w640-h360/6.jpg" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">As a prerequisite, you must set up Identity Federation with trust between Azure Entra ID and OCI identity domains and have groups created in Azure that are replicated in OCI.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">When you click “Go to OCI” in the Azure portal, you arrive on a corresponding page in the Oracle Cloud Console. For example, if you were on the VM Cluster overview page in Azure, you’re not on the VM Cluster overview page in OCI. Using the Console or Database APIs, you can create database homes, container databases, and pluggable databases at any time.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Creating container databases requires entering basic information, such as name, Database service version (19c), creating a database home, admin credentials, and backup configuration. When you’re finished, select Complete, and your new database progresses from “Provisioning” to “Available.” An initial pluggable database is created at the time of container database creation, and extra pluggable databases are easy to provision by navigating to the Pluggable Database tab on the Container Database detail page and selecting Create.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Infrastructure as Code (IAC)</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle Database@Azure supports both GUI and CLI operations through PowerShell in Azure and Terraform in OCI. PowerShell is only applicable for resources within Azure. You can use Terraform in the following ways:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li>Native OCI service in Resource Manager: For operations in OCI, such as network operations in a virtual cloud network (VCN), container or pluggable database operations, and other permissions-based operations.</li><li>Standalone Terraform application: For running operations in Azure and OCI as two separate Terraform providers. Each provider requires its own permission set and operations.</li></ul></div><div class="separator" style="clear: both;"><b><br /></b></div><h3 style="clear: both; text-align: left;"><b>Management</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Management responsibility of Oracle Database@Azure is shared between Oracle, Microsoft, and the customer. The following list and chart describes each component of managing the service and ownership distribution between OCI, Microsoft, and the customer.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><ul style="text-align: left;"><li>Oracle responsibilities: Exadata hardware, host infrastructure, Oracle Database@Azure API endpoint.</li><li>Azure responsibilities: Azure physical network, Azure SDN, Azure application infrastructure.</li><li>Oracle and Azure shared responsibilities: Data residency and support.</li><li>Customer responsibilities: The following table describes service components and location for task completion in the Azure portal and Oracle Cloud Console:</li></ul><div><br /></div></div></div><div class="separator" style="clear: both;"><table border="1" style="width: 100%;">
<tbody>
<tr>
<td> </td>
<td><b>Exadata <br />Infrastructure</b></td>
<td><b>VM Cluster<br />Management </b></td>
<td><b>Database<br />Management </b></td>
<td><b>Database<br />Maintenance </b></td>
<td><b>Applications </b></td>
<td><b>Identity<br />Management </b></td>
</tr>
<tr>
<td>Deployment </td>
<td>Azure</td>
<td>Azure</td>
<td>OCI</td>
<td>OCI</td>
<td>Azure</td>
<td>Azure/OCI</td>
</tr>
<tr>
<td>Lifecycle </td>
<td>Azure </td>
<td>Azure </td>
<td>OCI </td>
<td>OCI </td>
<td>Azure </td>
<td>Azure/OCI </td>
</tr>
<tr>
<td>Configuration </td>
<td>Azure </td>
<td>Azure </td>
<td>OCI </td>
<td>OCI </td>
<td>Azure </td>
<td>Azure/OCI </td>
</tr>
<tr>
<td>Support </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>Azure </td>
<td>Azure/OCI </td>
</tr>
</tbody>
</table>
</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Customer management activity in the Azure portal is facilitated from the Oracle Database@Azure service page, while activity in the Oracle Cloud Console is facilitated on the Oracle Exadata Database Service page.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Billing</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A single invoice provided by Azure is viewable on the subscriptions page in the Azure portal. All familiar capabilities, including detailed marketplace invoices, cost analysis, and more, are available like your other Azure subscriptions. Detailed Oracle database consumption information is accessible in the Oracle Cloud Console.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpdigTs7KlyW71OD8dRFgy9zt5cn86OdKhHKv306Z8nYJsvhXNdB3n_byfbPWQSDYM2eZHbglsSWRTGAvo9WXge_X48REvYyH0dE3ClbrOIMbZqK4p5uN7gfe_1n3omFlo_7morln_p6TmyVkXOiMMLCXdd7y1N3ZC07e_lW0eFH8Mt425F-IdhDeghPI/s720/7.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="383" data-original-width="720" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpdigTs7KlyW71OD8dRFgy9zt5cn86OdKhHKv306Z8nYJsvhXNdB3n_byfbPWQSDYM2eZHbglsSWRTGAvo9WXge_X48REvYyH0dE3ClbrOIMbZqK4p5uN7gfe_1n3omFlo_7morln_p6TmyVkXOiMMLCXdd7y1N3ZC07e_lW0eFH8Mt425F-IdhDeghPI/w640-h340/7.jpg" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><h3 style="clear: both; text-align: left;"><b>Monitoring</b></h3><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;">You can monitor Oracle Database@Azure from a single screen in the Console. Because Oracle manages infrastructure monitoring, telemetry exposure to customers isn’t required. VM cluster telemetry is fully available for customer consumption and is automatically integrated with Azure Monitor. Telemetry for Oracle databases will be integrated with Azure and available for complete customer monitoring in early 2024.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2s7Yg-24VqfHuRGmHbo2A_a31XQiJkz9HMMnDX0OyL10OPqeFaS_bUOG1hGwEMREilvceDrvoZ3aGtpD6JLAVowyNGQbxGxXl3Qmg_Yuoztozg0Q2-v4yxg1e1FXQu32_6ZJiiz-c4_H8GHku1iBmTmPG2KFCO26lZ_tA-wjRlH6lmLTGM8KklCecQ0w/s1024/8.jpg" style="margin-left: 1em; margin-right: 1em;"><img alt="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" border="0" data-original-height="538" data-original-width="1024" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2s7Yg-24VqfHuRGmHbo2A_a31XQiJkz9HMMnDX0OyL10OPqeFaS_bUOG1hGwEMREilvceDrvoZ3aGtpD6JLAVowyNGQbxGxXl3Qmg_Yuoztozg0Q2-v4yxg1e1FXQu32_6ZJiiz-c4_H8GHku1iBmTmPG2KFCO26lZ_tA-wjRlH6lmLTGM8KklCecQ0w/w640-h336/8.jpg" title="Oracle Database@Azure now Generally Available in Azure East US Region to accelerate your data center exit" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-60149930880062885212024-02-02T10:10:00.003+05:302024-02-02T10:10:41.447+05:30Extract key values with Oracle Analytics and OCI Document Understanding<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOvMGh1y8A2xIInZ6Ja8-zgBXtjbEpSSUicng-zalJHFB1ovvVSNC5ymozSDh2qrgICZw6gor2kN-MX9mswvO1fOxqPYx2Ke75uMCqlwDWoqo8yCEOAyPfXSso33h2fl1q5qizO22qSLt72bu8IA1v3fyM7X3GisKNkwT3jT3IiZwjXo6YBi1T9gkqSXU/s1200/AIDocGifV1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Extract key values with Oracle Analytics and OCI Document Understanding" border="0" data-original-height="799" data-original-width="1200" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOvMGh1y8A2xIInZ6Ja8-zgBXtjbEpSSUicng-zalJHFB1ovvVSNC5ymozSDh2qrgICZw6gor2kN-MX9mswvO1fOxqPYx2Ke75uMCqlwDWoqo8yCEOAyPfXSso33h2fl1q5qizO22qSLt72bu8IA1v3fyM7X3GisKNkwT3jT3IiZwjXo6YBi1T9gkqSXU/w640-h426/AIDocGifV1.gif" title="Extract key values with Oracle Analytics and OCI Document Understanding" width="640" /></a></div><div style="text-align: center;"><span style="text-align: left;">Example passport images used in Oracle Analytics to recognize text and expiration dates based on a pre-trained OCI AI model.</span></div><div><br /></div><div>Oracle Analytics solutions now integrate with Oracle Cloud Infrastructure (OCI) Document Understanding!</div><div><br /></div><div>OCI Document Understanding is an OCI AI service that enables developers to extract text, tables, and other key data from document files through APIs and command-line interface tools. With OCI Document Understanding, you can automate tedious business processing tasks with prebuilt AI models and customize document extraction to fit your industry-specific needs.</div><div><br /></div><div>You can use pre-trained models for text extraction, table extraction, key value extraction, and document classification. Once you choose a pre-trained model, you can upload your images, then register the model in Oracle Analytics Cloud (OAC), and apply your model in a data flow to extract the key values from a resume, a passport, a receipt, or an invoice.</div><div><br /></div><div>Here's how you can create a data visualization project based on OCI Document Understanding in 4 steps under 5 minutes. The steps are to:</div><div><br /></div><div>1. Upload sample passport images to Oracle Cloud, into a private (non-public) bucket object storage.</div><div>2. Register the OCI Document Understanding model in Oracle Analytics Cloud.</div><div>3. Create a data flow to apply the AI model to example passport images.</div><div>4. Add the recognized key values to a Dataset and use this dataset in a workbook to visualize the data.</div><div>5. A prerequisite is to have an Oracle Analytics Cloud instance with a connection to OCI.</div><div><br /></div><div><b>Step 1 – Create a bucket in OCI</b></div><div><br /></div><div>1. Connect to OCI at this URL: <a href="https://www.oracle.com/cloud/sign-in.html" target="_blank">https://www.oracle.com/cloud/sign-in.html</a></div><div>2. Click the menu option, then Storage, create a Bucket, and set a name.</div><div>3. Upload into the bucket all the document images needed to train and test your model.</div><div>4. Ensure the bucket is in the same tenancy as OAC. In this example, the bucket is “Bucket-vision-ai” that was previously created, and I uploaded 9 sample passport pictures under a folder named AID.</div><div><br /></div><div>This step generates a location where OAC will be able to access uploaded images and apply the AI model.</div><div><br /></div><div><b>Step 2 – Register your model in Oracle Analytics Cloud</b></div><div><br /></div><div>1. On the OAC Home Page, click the 3 little dots menu ("...", or the ellipsis) at the top right corner. </div><div>2. Select “Register Model/Function” and select “OCI Document Understanding Models”.</div><div>3. Once selected, choose your OCI connection. If it does not exist, you will need to create a new connection in OAC (Create > Connection > OCI Resource).</div><div>4. The window “Select a Model” will pop up. Select the model type “Pretrained Document Key Value Extraction”.</div><div>5. In the right-side panel, select your OCI Bucket and select the document type. In this example, it's “Passport”.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHly_jVCvdWR77TKL6w0GzesjSvOeS8zkAxw18pXqY3GOYVUCiehjIx4jM4iuGITUiRHSve7Ds4f1KXP0eE65d_lUtbimR0VxCT0dP2ImTrZGo2NBIFcXn-Y1R3ovi3eOnUIWMC6cHHm5Q3Fpkz_SAX_gOu6yk7yMo2O8YnERgV3ip5V7txnOdtnWIxtk/s707/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Extract key values with Oracle Analytics and OCI Document Understanding" border="0" data-original-height="644" data-original-width="707" height="582" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHly_jVCvdWR77TKL6w0GzesjSvOeS8zkAxw18pXqY3GOYVUCiehjIx4jM4iuGITUiRHSve7Ds4f1KXP0eE65d_lUtbimR0VxCT0dP2ImTrZGo2NBIFcXn-Y1R3ovi3eOnUIWMC6cHHm5Q3Fpkz_SAX_gOu6yk7yMo2O8YnERgV3ip5V7txnOdtnWIxtk/w640-h582/2.png" title="Extract key values with Oracle Analytics and OCI Document Understanding" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Example of a Selection of Pre-trained Document Key Value Extraction AI models in OAC.</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Step 3 – Apply the AI model to your images</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. Create a new data flow in OAC.</div><div class="separator" style="clear: both;">2. Create a dataset using a CSV file including your Bucket URL.</div><div class="separator" style="clear: both;">3. Add the Dataset to the data flow.</div><div class="separator" style="clear: both;">4. Add a step “Apply AI Model” to apply your pre-trained AI model to the images. Select the bucket URL in the Parameters, or File Location if you use a dataset showing images as a line item.</div><div class="separator" style="clear: both;">5. Select “Documents” as Input Type if you use itemized images or “Buckets” if you use your bucket URL.</div><div class="separator" style="clear: both;">6. Add a step to save the data in a new dataset. The saved data should contain the image name and URLs as well as the key values text/number extracted.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The data flow will load the images, analyze them with the pre-trained AI model, and extract the key values from the images. In this example, the passport documents. Then the data flow will load all the information into a dataset that you can use to explore and visualize the data.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCHvaC7Vr2namdnbKbsnREypkCfLd7jrfK-ckGAxWMGYhUA2Gkf2Pl0G4_xFUrNiFeHwT1H0W4DBV0ZJ_sagHFYR8Jn-vCrGUcCefvvI1dbBtsE_XoVX4H1omatwCVMG13nbdeE2f32mpVYZHIiWzIMcA8HvKHj-OdsaGIZO0BJIxgGDxy_ovCBrE3SN4/s1919/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Extract key values with Oracle Analytics and OCI Document Understanding" border="0" data-original-height="1298" data-original-width="1919" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCHvaC7Vr2namdnbKbsnREypkCfLd7jrfK-ckGAxWMGYhUA2Gkf2Pl0G4_xFUrNiFeHwT1H0W4DBV0ZJ_sagHFYR8Jn-vCrGUcCefvvI1dbBtsE_XoVX4H1omatwCVMG13nbdeE2f32mpVYZHIiWzIMcA8HvKHj-OdsaGIZO0BJIxgGDxy_ovCBrE3SN4/w640-h432/3.png" title="Extract key values with Oracle Analytics and OCI Document Understanding" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">This screenshot shows an example of the data flow with the results generated by the AI model.</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Step 4 – Visualize the results in Oracle Analytics.</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. Create a new Workbook in OAC.</div><div class="separator" style="clear: both;">2. Add the new dataset generated by the data flow.</div><div class="separator" style="clear: both;">3. Add an Image plugin visualization object to see all the images in your bucket.</div><div class="separator" style="clear: both;">4. Use this Image object as a filter by clicking the top left corner filter icon.</div><div class="separator" style="clear: both;">5. Create a new table to show all columns of your dataset.</div><div class="separator" style="clear: both;">6. Click one of the passport images to see the key value extracted in the table.</div><div class="separator" style="clear: both;">7. You can now use this workbook as a starting point to create additional calculation metrics to filter and analyze your documents. In this example, I decided to analyze the expiry date and create a conditional formatting donut to show if it’s expired (Red) or passed (Green).</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia7IjaiUwZl1ia9zuNTPK1YPsyu438JIbDUZBqU1DmzDlUMMGaP32pi3xSnWJL3A8giPboP8UxDqVjD2q3Wc56PXozRNSly4oN5Yhj7641_V00-iaDsjbdqQebEjKOwwFPIT9G0ZL9KcR2axFQzNI8LT9VHAV_-z7mxnlPIhMcWFRRtzn2ixBl1lEwmWU/s1024/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Extract key values with Oracle Analytics and OCI Document Understanding" border="0" data-original-height="683" data-original-width="1024" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia7IjaiUwZl1ia9zuNTPK1YPsyu438JIbDUZBqU1DmzDlUMMGaP32pi3xSnWJL3A8giPboP8UxDqVjD2q3Wc56PXozRNSly4oN5Yhj7641_V00-iaDsjbdqQebEjKOwwFPIT9G0ZL9KcR2axFQzNI8LT9VHAV_-z7mxnlPIhMcWFRRtzn2ixBl1lEwmWU/w640-h426/4.png" title="Extract key values with Oracle Analytics and OCI Document Understanding" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Example of the OAC workbook using the images plugin, OCI Document Understanding, and conditional formatting on calculation metrics.</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Customers are using OCI Document Understanding to recognize multiple types of documents at scale, from passports to invoices to receipts and resumes. Oracle Analytics allows you to apply and visualize the data in a matter of minutes, helping you go quickly from data to insights, actions, and decisions.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-58343122991861896252024-01-31T10:24:00.002+05:302024-01-31T10:24:04.195+05:30Dashboards: Dead or Alive? The evolution from data graveyards into data gold mines<div>Recently I’ve seen the subject of <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html">analytics dashboards</a></b> reaching the end of their usefulness raised on more than one occasion, whether in a live in-person event or in a social post. But is this really the case? Are dashboards indeed an outdated form of presenting data to stakeholders and making decisions?</div><div><br /></div><div>Are dashboards really dead?</div><div><br /></div><h3 style="text-align: left;"><b>What are traditional BI dashboards?</b></h3><div><br /></div><div>Classic dashboards have been around for decades, intended to empower business users with data-driven insights without the need for technical skills. When I began my analytics career nearly 20 years ago, "dashboards" were already prevalent. They served to simplify data access, letting executives explore key metrics without knowledge of the underlying data architecture.</div><div><br /></div><div>Building those early dashboards was no simple task; it required deep expertise across data visualization tools, storage systems, and accessing and transforming data into business concepts. While the creation was complex, the consumption was simplified. Users could understand and action insights.</div><div><br /></div><div>Traditional dashboards removed the complexity of data for businesspeople. But creating them still demanded technical specialization. These static, legacy dashboards remain common today despite lacking modern flexibility and intelligence. The next generation of analytics must balance technical depth with intuitive business exploration. Insights for all, complexity for none.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD1YlSE1I5-KVdF_Q0TjNswT-3WCSP7G2gqynR0LPrz6F186gsk4PP_NdyVe7kksAlSbRgoBq88Ag4YHXoihnibNteoTiSaoB4v2ulTGICddU-3NQjdoUbp3gEvW-64ngzkwPLFAFrzBoGhg0gAoJyD300ehLgfgRR8KWM8CnUNaTL2VKaNGiQmCWdrKg/s1024/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Dashboards: Dead or Alive? The evolution from data graveyards into data gold mines" border="0" data-original-height="676" data-original-width="1024" height="422" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD1YlSE1I5-KVdF_Q0TjNswT-3WCSP7G2gqynR0LPrz6F186gsk4PP_NdyVe7kksAlSbRgoBq88Ag4YHXoihnibNteoTiSaoB4v2ulTGICddU-3NQjdoUbp3gEvW-64ngzkwPLFAFrzBoGhg0gAoJyD300ehLgfgRR8KWM8CnUNaTL2VKaNGiQmCWdrKg/w640-h422/1.png" title="Dashboards: Dead or Alive? The evolution from data graveyards into data gold mines" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 1: A traditional dashboard example in Oracle Business Intelligence Enterprise Edition</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>What's the problem with traditional BI dashboards?</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Legacy dashboards often rely on dated technologies and methods, lacking capabilities such as natural language, ML predictions, and built-in augmented data preparation. Developers are resistant to adopt (or adapt to) emerging innovations. The old "if it ain't broke, don't fix it" mentality has many organizations still using old approaches that lag behind current best practices.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">For example, traditional dashboards struggled with real-time analytics, taking minutes or hours to refresh. Interactivity was limited too. Some allowed basic filtering or drill-down within preset data sources, but venturing outside the developer's predefined lanes was impossible.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">When people say things such as “dashboards are where good data goes to die,” they're typically referring to the traditional type of dashboards. The data presented on these dashboards often becomes stagnant and isn't actively used for decision-making, gradually diminishing its value over time. These dashboards are generally constructed and maintained centrally by IT. Making changes can be challenging, and the process of creating dashboards is often rigorous and time-consuming. As business needs evolved, many dashboards were created but rarely removed. Consequently, organizations have been amassing huge repositories of thousands of inactive dashboards. Business users perceive little value in them, often turning to alternate visualization tools or even resorting back to spreadsheet-based solutions instead. Sound familiar?</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This type of traditional dashboard is what Gartner refers to as “mode 1” business intelligence (BI). BI that was created centrally by a dedicated team, posted to a repository for business users and left there for the rest of eternity.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>How are modern dashboards different?</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A modern analytics dashboard (which leverages cloud technology) offers enhanced accessibility, real-time interactivity, user-accessible data integration, and collaborative capabilities that distinguish it from the older style of IT-led BI dashboards prevalent in legacy on-premises tools. Modern dashboards excel on two fronts compared to traditional, IT-led approaches. First, embedded AI/ML augments human analysis with machine intelligence. Second, self-service analytics empowers business users with autonomy.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">AI and ML boost productivity by automating tedious data preparation and enrichment tasks. They also detect hidden insights such as anomalies, unseen patterns, and future predictions. This enhances data stories with machine learning, minus the manual effort.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">However, technology alone isn't the answer. True enablement comes by putting analytics directly into the hands of business users by fostering a culture of data literacy and by providing intuitive tools for self-service exploration and decision-making. Self-service removes reliance on IT or specialists to build reports. Now cross-functional users can freely access, analyze, and share data on their own. With IT empowering through governance, not limiting through control, the possibilities are endless. People ask their own questions, find their own answers, and tell impactful data stories that positively affect the business without bottlenecks.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The future of dashboards is democratization, not restriction. Blending embedded AI/ML with self-service exploration makes modern dashboards a portal into limitless insights.</div><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>How has Oracle Analytics evolved?</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Previous versions of Oracle Analytics (such as OBIEE) were designed for centralized, IT-controlled business intelligence. The semantic model simplified access to complex data architectures, transforming them into business metrics. But there were drawbacks, such as IT becoming a bottleneck trying to keep up with business requests. Now with the option to upgrade to Oracle Analytics Server (OAS) on-premises or hosted in cloud, OBIEE customers gain the opportunity to give businesspeople the modern analytics tools and interfaces that their users demand while still retaining their investment in the corporate semantic model.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Today's Oracle Analytics platform (both Oracle Analytics Cloud and Oracle Analytics Server) has expanded into self-service for business users. Now cross-functional teams can easily obtain insights without relying on specialists. AI and ML augment human analysis with recommendations and productivity enhancers such as generative AI chat interfaces.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg79cIaMjAgNVVzHsuTNpM5F48NaohGLfCakIhv1EZl7zMnqogo1pcWGE62Tx5YVmYrjNOFrrUEbkqoOwuDc83XrZkVLvFi2Pj29ofQ4xpwIgzDCDqtH2J5ZjKQmfb-9rsF3oAtYLW-DUp3hyphenhyphenjc6CG-k2i4W9gIHn-ZwiwsrReRHWW3uoQiIt_L-iDgbCc/s1024/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Dashboards: Dead or Alive? The evolution from data graveyards into data gold mines" border="0" data-original-height="146" data-original-width="1024" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg79cIaMjAgNVVzHsuTNpM5F48NaohGLfCakIhv1EZl7zMnqogo1pcWGE62Tx5YVmYrjNOFrrUEbkqoOwuDc83XrZkVLvFi2Pj29ofQ4xpwIgzDCDqtH2J5ZjKQmfb-9rsF3oAtYLW-DUp3hyphenhyphenjc6CG-k2i4W9gIHn-ZwiwsrReRHWW3uoQiIt_L-iDgbCc/w640-h92/2.png" title="Dashboards: Dead or Alive? The evolution from data graveyards into data gold mines" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 2: Oracle Analytics platform YouTube product tour</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">IT retains governance for compliance and reliability. But the focus has shifted from centralized reporting to decentralized self-sufficiency. User autonomy, not technical complexity, now sits at the core. By combining governance with flexibility, Oracle enables actionable analytics. People ask their own questions and find answers quickly. Backed by machine learning, human intelligence scales further. Oracle Analytics allows organizations to become truly insights-driven by making analytics accessible, intelligent, and empower users to be self-sufficient.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3m2tZHIQM_PYOJdJ7O4FNor7Rjcb6ByZ3R8FJ6npEREuRdizHyeOEpL9IvYgpoBzOCwrl0fIBkgqMHl-CqOpH4h9mj_4tY7B5grFcCYnuRke09jbyDqkez5a056P2mdIBDgGBF9SE_9mD79cWuiOqUcpZMTVwrZAbDGhEJGMLWPi8Qswc4fEW7bWckXo/s1389/3.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Dashboards: Dead or Alive? The evolution from data graveyards into data gold mines" border="0" data-original-height="785" data-original-width="1389" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3m2tZHIQM_PYOJdJ7O4FNor7Rjcb6ByZ3R8FJ6npEREuRdizHyeOEpL9IvYgpoBzOCwrl0fIBkgqMHl-CqOpH4h9mj_4tY7B5grFcCYnuRke09jbyDqkez5a056P2mdIBDgGBF9SE_9mD79cWuiOqUcpZMTVwrZAbDGhEJGMLWPi8Qswc4fEW7bWckXo/w640-h362/3.gif" title="Dashboards: Dead or Alive? The evolution from data graveyards into data gold mines" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Figure 3: Oracle Analtyics Cloud with live interactive data visualizations embedded into a slide. Live visualizations allow people to focus on the results and making the right decision.</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Call to action</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Sure, there are most certainly many examples of BI or analytics projects that still have traditional style centrally created static dashboards where data indeed goes to die. But hopefully it’s clearer that all dashboards aren’t created equal, and the same fate doesn't apply to modern dashboards that are designed for self-service and that use AI/ML throughout.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">For clarity, data doesn’t die and dashboards aren't dead. But traditional mode 1 style BI can stagnate data, making it less useful and untrustworthy. Business users and executive stakeholders that aren’t savvy enough to connect to and retrieve the data that they need will always rely on some form of dashboard. In the absence of a good solution, they'll resort to spreadsheets – and no one wants that.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">My recommendation is to stop building old-school centralized dashboards (also known as mode 1) that are used briefly and then forgotten. Instead empower users with self-service and modern technologies (such as AI/ML) to answer their own questions, tell their own stories, and make better more analytics-driven decisions (also known as mode 2).</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-25109635914245130142024-01-29T11:24:00.000+05:302024-01-29T11:24:06.510+05:30New AI capabilities with Oracle Analytics<div>Oracle Analytics delivers ongoing innovation through the year, and offers a wide range of AI capabilities. It provides users capabilities augmented with AI, Machine Learning, and Data Science, as well as leveraging <b><a href="https://dbexamstudy.blogspot.com/p/1z0-921-oracle-mysql-2021.html">Oracle Cloud Infrastructure (OCI) integrated</a></b> AI Services.</div><div><br /></div><div>Oracle Analytics offers 3 types of AI capabilities:</div><div><br /></div><div>1. Built-in, AI-augmented capabilities.</div><div>2. Integrated ML capabilities.</div><div>3. Integrated AI capabilities.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG0HBdUuP8v8_-ChiDvJEHip_FyqfXFBQMD3gxupehPhc3sYzhuBoQ1zoqwd0tWXPEPTRBJXQfQJt-_P307iC0qEmnipE9SN2mINzHXRClFVdLwII8nTTNxBVhBDzjlmrwHyNfrbdKYuMm8-wVP21lcHB1P14FJTMnaTnju10UMz5ssRXwcc_IdCjHiSs/s1024/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="576" data-original-width="1024" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG0HBdUuP8v8_-ChiDvJEHip_FyqfXFBQMD3gxupehPhc3sYzhuBoQ1zoqwd0tWXPEPTRBJXQfQJt-_P307iC0qEmnipE9SN2mINzHXRClFVdLwII8nTTNxBVhBDzjlmrwHyNfrbdKYuMm8-wVP21lcHB1P14FJTMnaTnju10UMz5ssRXwcc_IdCjHiSs/w640-h360/1.png" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">AI capabilities of Oracle Analytics - Author: Philippe Lions, VP Product Management, Oracle.</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;">Here's a list to help you discover some of the key AI features for Oracle Analytics:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>Built-in AI Augmented capabilities</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><a href="https://docs.oracle.com/en/cloud/paas/analytics-cloud/tutorial-auto-insights/index.html#background" target="_blank">AI Auto-Insights:</a> This feature generates data visualizations automatically from a specific dataset. It will create an optimal visualization for the data elements selected.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZP-DgBhTwVEY9IrmbZXd-pjdvWaPrHobILvSgjWQmewJVrkJwoDqp6i2k9jlzZBXEPPBkOBQ2E3AgHce-nNFCBNmrh1vugEeYPBmNu9CQFlJ9SC_mLy14-6uldCoxZbVYPuK_sgP0dswK8AN01NdxoDgCzJ7ssRJdbPO9ztDpXevA_on-ErVj3ukYnNA/s1200/2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="890" data-original-width="1200" height="474" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZP-DgBhTwVEY9IrmbZXd-pjdvWaPrHobILvSgjWQmewJVrkJwoDqp6i2k9jlzZBXEPPBkOBQ2E3AgHce-nNFCBNmrh1vugEeYPBmNu9CQFlJ9SC_mLy14-6uldCoxZbVYPuK_sgP0dswK8AN01NdxoDgCzJ7ssRJdbPO9ztDpXevA_on-ErVj3ukYnNA/w640-h474/2.gif" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">AI Auto Insights, Explain and Segmentation</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><a href="https://docs.oracle.com/en/cloud/paas/analytics-cloud/acubi/analyze-data-explain.html#GUID-D1C86E85-5380-4566-B1CB-DC14E0D3919E" target="_blank">Explain:</a> This feature uses Machine Learning to automatically explain a metric or attribute - like “Attrition” in the example below - with a single click. It calculates the correlations, drivers, segmentations and anomalies for the dataset.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDWiUPLW1WJ0vzuAIvfpH8tRxGEQ4I7AIijzXBYK_li93HO3in25_gZMewdErtio3vf654yKOTqKiHQh6CxhA3rL42F6H7BzyJM18ldZkG2E6vJot54Pgwu6hYx4YJ8Wv6WIv1phDHlPO3kjRMDE705NccFz9moLBtrzJGq_q5zKlUFpzlVCSYTSq2e38/s1024/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="648" data-original-width="1024" height="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDWiUPLW1WJ0vzuAIvfpH8tRxGEQ4I7AIijzXBYK_li93HO3in25_gZMewdErtio3vf654yKOTqKiHQh6CxhA3rL42F6H7BzyJM18ldZkG2E6vJot54Pgwu6hYx4YJ8Wv6WIv1phDHlPO3kjRMDE705NccFz9moLBtrzJGq_q5zKlUFpzlVCSYTSq2e38/w640-h406/3.png" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">1-Click ML/AI feature: this feature enables you to create statistics and ML-generated insights, like clustering with ML or forecasting, using algorithms like ARIMA or ETS with a single click.</div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC-Uwpgn_Pwxz6DHGet3dF9ZosjXuJR-bHKkwOxkn9mrfWCum-Hlp2lC7qYlEIiD5y7Shz3CxIz3qj2fDPGGUcjeQj-b7a3GvDx06AGgGxeTmU6088Nemzmmz67vptOtLhwotIMLWftOieAjUJ2M7aQ1Xw1ubfPZQfHhdJczb4O2Em_gIFOB-hUe1atpE/s1024/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="647" data-original-width="1024" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC-Uwpgn_Pwxz6DHGet3dF9ZosjXuJR-bHKkwOxkn9mrfWCum-Hlp2lC7qYlEIiD5y7Shz3CxIz3qj2fDPGGUcjeQj-b7a3GvDx06AGgGxeTmU6088Nemzmmz67vptOtLhwotIMLWftOieAjUJ2M7aQ1Xw1ubfPZQfHhdJczb4O2Em_gIFOB-hUe1atpE/w640-h404/4.png" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b>ML Integrated Capabilities</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><a href="https://docs.oracle.com/en/middleware/bi/analytics-desktop/bidvd/data-flow-steps-training-machine-learning-models.html#GUID-97826D44-5785-48F2-BB1E-4709327ADB8B" target="_blank">Drag and Drop ML and Data Science:</a> this feature allows you to train models using numeric prediction, multi-classifier, binary classifier, or clustering with different built-in algorithms. These ML algorithms can be customized, trained, tuned, and then published to the wider analytics user community.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7wJbdj0Mj4JJcOrJR0fE1kI_GlofQ6NB33EQQNcpOJg_lXyujP46fBfbxtQ7Da2oNssX3_eFxfBTVQwObc6IHb8itJh71DpFEjNmHEZ7zrUcGX4XGy-6oApcdWtXfY6Lg6ZjsQAx6K5mZHx1uUGEWO7Eq7ODiE_4Sh6Wa6qSLbNK9hWqPNzLXP7xxKdo/s1200/5.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="759" data-original-width="1200" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7wJbdj0Mj4JJcOrJR0fE1kI_GlofQ6NB33EQQNcpOJg_lXyujP46fBfbxtQ7Da2oNssX3_eFxfBTVQwObc6IHb8itJh71DpFEjNmHEZ7zrUcGX4XGy-6oApcdWtXfY6Lg6ZjsQAx6K5mZHx1uUGEWO7Eq7ODiE_4Sh6Wa6qSLbNK9hWqPNzLXP7xxKdo/w640-h404/5.gif" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">ML Data Flow with Prediction by Low Code No Code</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;"><b>Integrated AI capabilities</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle Cloud offers multiple AI services: <a href="https://www.oracle.com/artificial-intelligence/ai-services/" target="_blank">https://www.oracle.com/artificial-intelligence/ai-services/</a></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Currently, Oracle Analytics is integrated with 3 of them and more are planned in our Product Roadmap. Integration means that you can create an AI service in OCI, register the AI model, and ingest the results into Oracle Analytics as a dataset to create visual data stories.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Below are some key OCI AI services currently integrated with Oracle Analytics:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. AI Vision</div><div class="separator" style="clear: both;">2. AI Language</div><div class="separator" style="clear: both;">3. AI Document Understanding</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Below you can review these AI services and discover data visualizations built using them.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>AI Vision Integration</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">AI Vision provides Object Detection and Image Classification. There are live demos for each in the public OAC instance.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A blog and demo showing object detection is available here:</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKuQ4vRVswlowKZT0tFm79rwpXUXfGCbs8uIc017ZvtFJZ-2IfPF2ghffSJLCfWyserzHKqo4lI11UoydiMTQbR-eNpocQSiudSOksbgFEergq4yqkKJxw7qQZNmlHYe8bwPmgbzoeTox-ko7AwRMgXnGXxNhBWM7ZuNjNVUamv5myMOwYy_jujGmcS8s/s1024/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="604" data-original-width="1024" height="378" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKuQ4vRVswlowKZT0tFm79rwpXUXfGCbs8uIc017ZvtFJZ-2IfPF2ghffSJLCfWyserzHKqo4lI11UoydiMTQbR-eNpocQSiudSOksbgFEergq4yqkKJxw7qQZNmlHYe8bwPmgbzoeTox-ko7AwRMgXnGXxNhBWM7ZuNjNVUamv5myMOwYy_jujGmcS8s/w640-h378/6.png" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Data Visualization showcasing the use of an OCI AI Vision - Author: Benjamin Arnulf</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A <a href="https://dbexamstudy.blogspot.com/2023/01/drive-innovation-with-oracle-analytics.html" target="_blank">blog</a> and demo showing image classification is available <a href="https://dbexamstudy.blogspot.com/2023/01/drive-innovation-with-oracle-analytics.html" target="_blank">here</a>:</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIU2u7Nd7wV1nV-MIguD1qcYxKVbj021uuiC9UaF8GrXpKNndPiMyN_0OG1sK1PasPv7P8R0ljmSy6ZBOnNrpcnFv9qCDOBIEO3347orEDpnYLX_vCPZWNB7tRY8p-gCSSBor0gzhh_ydhqdpYpHmkgt75jgt0VWtkrNchElRVmDZnHm4w4k3ONnfx3uc/s1200/7.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="752" data-original-width="1200" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIU2u7Nd7wV1nV-MIguD1qcYxKVbj021uuiC9UaF8GrXpKNndPiMyN_0OG1sK1PasPv7P8R0ljmSy6ZBOnNrpcnFv9qCDOBIEO3347orEDpnYLX_vCPZWNB7tRY8p-gCSSBor0gzhh_ydhqdpYpHmkgt75jgt0VWtkrNchElRVmDZnHm4w4k3ONnfx3uc/w640-h402/7.gif" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Data Visualization showcasing the use of an OCI AI Image Classification trained model with 3,000 public MRI - Author: Benjamin Arnulf</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>AI language Integration</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle Analytics has the capability to analyze language using AI:<span> </span></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSD2f35aWqxK6zJxYxFWV_hn3v2UQSxsZK1k2ioxZoPrNh_JX2t3w1lcq0j26deVKwAVM1XhECUSYezha09H7m5jkcu0MpJvsxuOYAY20BpRBkndRz22ItVVL8OJkfgPkW6T7dDzBjfcZDlhJhPAXXST6xWR9DTHsroR9UwgMZj7uD_okfct-HTVMmBIQ/s1024/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="577" data-original-width="1024" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSD2f35aWqxK6zJxYxFWV_hn3v2UQSxsZK1k2ioxZoPrNh_JX2t3w1lcq0j26deVKwAVM1XhECUSYezha09H7m5jkcu0MpJvsxuOYAY20BpRBkndRz22ItVVL8OJkfgPkW6T7dDzBjfcZDlhJhPAXXST6xWR9DTHsroR9UwgMZj7uD_okfct-HTVMmBIQ/w640-h360/8.png" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Oracle Analytics data disualization showing the use of an OCI AI Language with a pre-trained model - Author: Philippe Lions</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>AI Document Understanding</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle Analytics is integrated with OCI AI Document Understanding and can recognize and extract values from a passport, receipts, resumes (aka CVs), invoices and more. See a blog and demo below:</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj70MztCuNxEbuqpOso9xfTwxSF4O3FCxV1Vc4zNQTqjVNilUebUpmXcWAKW1NkWpCqGTxVwGQLddUcCEaWCljSa5ms2lR6gXXZl1HW-njL4oLKZowoQqaVwnKZzJQgn8vTk5NTEjLhyw6HKi_LClfelG8iUXa4A8NFz4dF3DhAQ8ZhTACXkgAHfFfzBG8/s1200/9.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="799" data-original-width="1200" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj70MztCuNxEbuqpOso9xfTwxSF4O3FCxV1Vc4zNQTqjVNilUebUpmXcWAKW1NkWpCqGTxVwGQLddUcCEaWCljSa5ms2lR6gXXZl1HW-njL4oLKZowoQqaVwnKZzJQgn8vTk5NTEjLhyw6HKi_LClfelG8iUXa4A8NFz4dF3DhAQ8ZhTACXkgAHfFfzBG8/w640-h426/9.gif" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Oracle Analytics Data Visualization showing the use of OCI AI Document Understanding with a pre-trained model for key value extraction. Authors: Benjamin Arnulf and Philippe Lions</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><b><br /></b></div><div class="separator" style="clear: both;"><b>AI Digital Assistant</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This will be integrated into Oracle Analytics, as announced at the keynote of T.K. Anand at OCW23. In summary, you will be able to ask questions like “What is the root cause for attrition and the trend for the past 3 quarters?”, and the integration will leverage Cohere or other Large Language Models (LLM) to create an answer and generate relevant data visualizations. </div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmGGRrO4JtJdIKMuFiVSwIKChj2plIAmY3_Mk20Thqx-clr-6IylvUOFMNqxm56fY_mL9-h5OcnUIi28szacwx0R6phGkcaxYnzIF8WjAnUgR0pB8l6BOMlI_0NKpVQe8UHF7xzrD36eLbRHfen6NM3nCBD2n1smMLNf9sd1J5OShMzYbTxrLC7l6_aE/s1200/10.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New AI capabilities with Oracle Analytics" border="0" data-original-height="675" data-original-width="1200" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmGGRrO4JtJdIKMuFiVSwIKChj2plIAmY3_Mk20Thqx-clr-6IylvUOFMNqxm56fY_mL9-h5OcnUIi28szacwx0R6phGkcaxYnzIF8WjAnUgR0pB8l6BOMlI_0NKpVQe8UHF7xzrD36eLbRHfen6NM3nCBD2n1smMLNf9sd1J5OShMzYbTxrLC7l6_aE/w640-h360/10.gif" title="New AI capabilities with Oracle Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;">Oracle Analytics and the OCI AI Digital Assistant using large language models to generate answers and data visualizations.</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0tag:blogger.com,1999:blog-2596494679569914550.post-5162724566590207022024-01-24T10:51:00.001+05:302024-01-24T10:51:59.475+05:30Introducing Manufacturing Analytics in Oracle Fusion SCM Analytics<div>The world of modern manufacturing is highly dynamic and presents numerous challenges, including fluctuating supply and demand, supply chain disruptions, unexpected production inefficiencies, and the ongoing need to identify optimal suppliers to manage order backlogs. The agility to make swift decisions and pivot strategies is crucial. But the lack of integrated insights integrated across operational data and key business systems hinders agility, making it hard to streamline the manufacturing ecosystem and obscuring both potential opportunities and threats.</div><div><br /></div><div>Oracle Fusion SCM Analytics introduces the <b><a href="https://dbexamstudy.blogspot.com/p/oracle-database-certifications.html"><span style="font-size: large;">Manufacturing Analytics</span></a></b> capability that provides manufacturers with timely insights into work order performance, shop floor efficiency, and plan-to-production processes. Connecting supply chain and manufacturing data all in one place, this new feature helps drive better access, actionable insights, and increased productivity.</div><div><br /></div><h3 style="text-align: left;"><b>Timely insights into work order performance</b></h3><div><br /></div><div>Analyzing work order data is very complex, and this makes it difficult to unearth trends or meaningful insights about performance, such as analyzing if cycle times are excessive or if manufacturers are meeting their order targets. By leveraging the comprehensive array of ready-to-use key performance indicators (KPIs) in Oracle Fusion SCM Analytics, manufacturers get a concise overview of work order execution, and they can easily discern patterns in manufacturing cycle times, as well as pinpoint the root causes behind deviations that influence overall output quality. Intuitive dashboards help answer questions like:</div><div><br /></div><div><ol style="text-align: left;"><li>How much time does it take to produce my products?</li><li>How does actual time to produce compare against planned time?</li><li>What is the production yield for my plant?</li></ol></div><div><br /></div><div>This allows manufacturers to easily detect bottlenecks across manufacturing stages, helping preserve work order schedules and fostering a culture of analytics-driven continuous improvement.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyLauvu9uOipwVQViJj64oP26xzPQ9cjq0RaHh0k7xLMH2oiDICNxew9NjbMNQWY5r7RaJ8sL5Z_DIdgnosu_hf-Wp6wa7luotEr36pC38Gm66tjJwMrnEYcIqFJPcJD9L9Ma9v3ATHh7Gsm6lHt7oiWcxtMfka6WoZeOsyFpxpCjb4gr2e_ibNpldvtk/s1024/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Manufacturing Analytics in Oracle Fusion SCM Analytics" border="0" data-original-height="576" data-original-width="1024" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyLauvu9uOipwVQViJj64oP26xzPQ9cjq0RaHh0k7xLMH2oiDICNxew9NjbMNQWY5r7RaJ8sL5Z_DIdgnosu_hf-Wp6wa7luotEr36pC38Gm66tjJwMrnEYcIqFJPcJD9L9Ma9v3ATHh7Gsm6lHt7oiWcxtMfka6WoZeOsyFpxpCjb4gr2e_ibNpldvtk/w640-h360/1.jpg" title="Introducing Manufacturing Analytics in Oracle Fusion SCM Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Manufacturing Analytics Overview</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><h3 style="clear: both; text-align: left;"><b>Detect anomalies in product quality to take fast corrective action</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Gathering accurate and timely data from various sources on the shop floor can be difficult, and inaccurate or incomplete data can contribute to misleading insights, hindering the effectiveness of analytics-driven improvements.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">With prebuilt Manufacturing Analytics, plant managers can have a single shop floor overview to quickly identify patterns in scrapped, rejected, canceled, and reworked items. They can also easily deduce the reasons for waste, then quickly implement corrective measures. With easy-to-use self-service visualizations, shop floor managers can swiftly identify anomalies that impact product quality, answering questions like:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. How is my quality of production?</div><div class="separator" style="clear: both;">2. What percent of items is being reworked?</div><div class="separator" style="clear: both;">3. How much do I scrap during production?</div><div class="separator" style="clear: both;">4. Is my plant reaching its targeted production output?</div><div class="separator" style="clear: both;">5. How many work orders are completed on time?</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhau4foxZlqnDZyo_q3KCK9UV-zsuQHe1-sKSbG6dWa7F5VEA7OSQXeLNM3jqnKC7K1eARsItjvqlDa1olwkeoTQTwbq3q3VLQAR6dxSgKdpttD2ma5MBMbKXLStEWVTGjw5snGPpU7ecF_y3XiVqDRkdDozVZ62BILhil6CvTv8Ku-nuLTvsbbZlkTNfI/s1024/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Manufacturing Analytics in Oracle Fusion SCM Analytics" border="0" data-original-height="576" data-original-width="1024" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhau4foxZlqnDZyo_q3KCK9UV-zsuQHe1-sKSbG6dWa7F5VEA7OSQXeLNM3jqnKC7K1eARsItjvqlDa1olwkeoTQTwbq3q3VLQAR6dxSgKdpttD2ma5MBMbKXLStEWVTGjw5snGPpU7ecF_y3XiVqDRkdDozVZ62BILhil6CvTv8Ku-nuLTvsbbZlkTNfI/w640-h360/2.jpg" title="Introducing Manufacturing Analytics in Oracle Fusion SCM Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Product Quality Overview</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><h3 style="clear: both; text-align: left;"><b>See production impact across the entire plan-to-produce process</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">A significant challenge is the lack of consolidated insights across vital departments, from procurement and inventory to order fulfilment and sales. Such fragmentation makes it difficult to identify threats and opportunities that have a direct bearing on production.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oracle Fusion SCM Analytics provides prebuilt unified data and analytics across manufacturing, procurement, inventory, financials, fulfillment, and sales, with the ability to easily include other data sources to get interconnected insights. With holistic supply chain analytics, production leaders can:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">1. Predict how supplier performance, such as delayed deliveries and product defects, will affect production goals.</div><div class="separator" style="clear: both;">2. Get a clear understanding of how material and inventory costs influence margins.</div><div class="separator" style="clear: both;">3. Continuously monitor inventory patterns and stockouts to mitigate risks associated with part backlogs.</div><div class="separator" style="clear: both;">4. Proactively forecast potential disruptions stemming from supplier performance, helping to ensure production goals remain intact.</div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxxd7kOw3ai2Jl5hAFsV16CmzK9k8v78oexYlJZAONHZTTEjYS_ToZ6bh-uJkPR55PjzsNu_l4lHmNITueBcpmI0N4pIHvqkTZG891BJrlrSq7Xn5RlxRPCzUZiohv6QapUlONY4P5Xj_WfOctTmedMxate8uc6w4Hp3aSD4xlKiIBoaP2dibUpSMisAY/s1024/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Introducing Manufacturing Analytics in Oracle Fusion SCM Analytics" border="0" data-original-height="576" data-original-width="1024" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxxd7kOw3ai2Jl5hAFsV16CmzK9k8v78oexYlJZAONHZTTEjYS_ToZ6bh-uJkPR55PjzsNu_l4lHmNITueBcpmI0N4pIHvqkTZG891BJrlrSq7Xn5RlxRPCzUZiohv6QapUlONY4P5Xj_WfOctTmedMxate8uc6w4Hp3aSD4xlKiIBoaP2dibUpSMisAY/w640-h360/3.jpg" title="Introducing Manufacturing Analytics in Oracle Fusion SCM Analytics" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;">Plan-to-produce cross-departmental process </span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"> </div><h3 style="clear: both; text-align: left;"><b>Create a system of insights from Oracle Cloud Application data and external data sources</b></h3><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Monitoring work order statuses is challenging because the necessary data comes from various sources like equipment sensors, maintenance records, and different software systems. This diversity in data sources also complicates the organization and analysis of work order information, making it challenging for production managers to identify patterns and gain valuable insights about things like cycle time overruns or performance against ideal order goals. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">With <a href="https://dbexamstudy.blogspot.com/p/1z0-931-23-oracle-autonomous-database.html">Oracle Fusion SCM Analytics</a>, plant managers can easily blend data from various sources to get a unified view of both IT and OT data. With a single view, they can understand the cause and effect of machine downtime on product quality or other critical production metrics, and they can see the root cause of variances in production processes to mitigate future risks. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;">Source: oracle.com</div></div>DB Exam Studyhttp://www.blogger.com/profile/03085376060784623958noreply@blogger.com0