Tuesday, May 21, 2024

Make Better Maps for Your Apps with Spatial Vector Tiles and H3 in Oracle Database 23ai

Make Better Maps for Your Apps with Spatial Vector Tiles and H3 in Oracle Database 23ai

Oracle Spatial is introducing these new features for developers in Oracle Database 23ai:

  • Vector tile support: Do you want to create maps from spatial data in your Oracle database?  You can now generate vector tiles via an in-database function and then stream your spatial data as vector tiles for scalable, flexible maps for web and mobile applications. 
  • H3 support: You can use easy-to-view hexagon cells to create compelling visuals and summaries of very large volumes of point data.

As you’ve probably heard, Oracle just announced the general availability of Oracle Database 23ai. In alignment with the focus of the release on AI and developer productivity, Oracle Spatial offers several improvements to simplify the experience of developing applications by removing the complexity associated with your database interaction. These improvements range from streamlined SQL syntax that makes it easier to work with the spatial vector data type, to a REST API for raster data and more functions for working with Lidar point clouds. 

Now, back to vector tiles and H3.  These are very exciting new features, as ITIS, a solutions provider for the transportation and safety sector, told us - see the quote above.

What are spatial vector tiles?


In the world of maps and spatial, the vector tile format is a highly efficient, compressed data format optimized for web applications to consume and render spatial data (note: spatial vector tiles are different from AI vectors for generative AI, a powerful Oracle Database 23ai capability you may have heard of). Like GeoJSON, vector tiles enjoy wide support from developer web kits and spatial applications. But what distinguishes vector tiles is their superior performance: they allow you to get much larger volumes of data very quickly into mapping applications.

Vector tiles are also versatile, supporting dynamic styling. That is, map styles (which define the look of elements in your map) can be applied on the fly in the client, so you have flexibility in applying different styles to the same data. In addition, vector tiles provide fast performance, smooth map interactions, and dynamic map queries. They’re the industry’s preferred method for scalable delivery of spatial data to mapping client applications.

Make Better Maps for Your Apps with Spatial Vector Tiles and H3 in Oracle Database 23ai
A thematic map generated from vector tiles
 

How do you create vector tiles in the database?


So, what we’ve done in Oracle Database 23ai to support vector tiles is to add a function that lets you generate vector tiles – just with a simple SQL call. It’s a straightforward function called sdo_util.get_vectortile().

The get_vectortile() function accepts the geometry column in a table, tile identifier, and attributes as parameters, and returns the corresponding vector tiles.

Here is an example where we’re creating a vector tile based on the geometry column in the CUSTOMERS table. Customer attribute information will also be returned to the vector tile, so that further filtering or analysis can be performed in the browser client.

SELECT sdo_util.get_vectortile(
  'CUSTOMERS',                                                                                -- table name
  'GEOM',                                                                                            -- geometry column name
  6,                                                                                                      -- tile x
  14,                                                                                                    -- tile y
  25,                                                                                                    -- tile zoom
sdo_string_array('NAME', 'ZIP', 'CITY', 'STATE', 'SALES_2022') -- attributes
FROM customers

You can also use an SQL query to specify criteria for data you want in your vector tile map. For example, you may want to map all the sales territories in a specific region with more than 1000 customers between the ages of 25-40.

The function returns the vector tile data as a binary structure. It is not human-readable, but it is a highly efficient, compressed format containing map data that is tailored to be consumed by web clients. And because spatial data in the database is converted to vector tiles right in the database your architecture is simplified.

To be useful to end users, the result of the vector tile query needs to get streamed out to a web application that can consume it. A great way to do this is through REST APIs, which are a convenient way for backend systems to talk to web applications. Thanks to Oracle Database as a converged database, it’s very easy to create REST APIs in the database with Oracle REST Data Services (ORDS) which takes any SQL query and exposes it as a REST API. The end result is that modern web mapping clients can consume vector tile data generated through the get_vectortile() function and exposed with REST APIs.

Now, let’s look at H3, a spatial data structure that’s great at visualizing and making sense of very large point data sets.

What is H3?


Hexagons are a very visually appealing and useful way to view data on maps, especially when you have very large amounts of dense point data, and want to easily view summaries, patterns, and clusters in data. They also have advantages in terms of geospatial analysis, coverage, and accuracy.

Oracle Spatial now provides support for hexagonal hierarchical spatial indexing (H3) in Oracle Database 23ai. H3 is an open source indexing system developed by Uber that uses hexagons in a grid system to cover the earth’s surface. With H3, data points are bucketed in hexagon cells and attributes can be aggregated and summarized over these hexagons. For very large volumes of point data, H3 cells are very useful for visualizing aggregated attribute data in thematic maps.

From the technical point of view, H3 takes dense, large-volume point data and constructs summaries of the data in a hierarchical structure. For example, you might have a data set with all the car crashes that occurred in California in 2023 with more than 100,000 data points. Visualizing these thousands of points on a map as is will make the visual representation of the data very difficult. Instead, you can use H3 to generate a data structure that summarizes the total number of crashes in each hexagon cell at different zoom levels. You can then view these on a map as color-coded hexagons – instead of as a confusing smudge of too many points. This makes it much easier to view and interpret large datasets – enabling an at -a-glance view of hot spots, clusters, and areas of low activity.

Make Better Maps for Your Apps with Spatial Vector Tiles and H3 in Oracle Database 23ai
Visualization of H3 hexagons color coded by the number of incidents in each hexagon

How does H3 indexing work in Oracle Database?


In order to deliver map visualizations to your client application, you will go through two main steps – generating the H3 index and then turning the H3 into vector tiles.

First, you generate the H3 index for the point data we’re interested in using the H3 hierarchical grid system. H3 index creation is done with the new function SDO_UTIL.H3SUM_CREATETABLE(), which creates a new table in the database for the H3 representation of the data. You specify your input data (such as crash locations) and pick the type of aggregation you want (such as the count of crashes in each cell).

Second, you turn H3  hexagons into vector tiles using the new function SDO_UTIL.H3SUM_VECTORTILE(). This is similar to what we described with the get_vectortiles( ) function above, except that this function is specifically for converting H3 hexagons into vector tiles. With these 2 simple steps, you can aggregate a large data set into an aggregated hexagon data set and visualize it as thematic maps that are easy to interpret and visually appealing. Your web applications can easily consume the hexagon data as vector tiles exposed with a REST API.

Summary

Vector tiles and H3 are very popular techniques for maps in web and mobile applications, so we made vector tiles and H3 developer-ready in Oracle Database 23ai – you can work with them right out of the database. These new features will help you create powerful maps from your data and enhance your web applications, for data-driven applications with integrated spatial analytics.

Source: oracle.com

Monday, May 20, 2024

Consolidating Development Environments with Autonomous Database Elastic Pools

Consolidating Development Environments with Autonomous Database Elastic Pools

You are dying to get a reservation at that hot new restaurant for you and another couple. You get a tip that a table may be available for this weekend. Since you want to keep the spot, you call them and make the reservation for a table of 4, then try to track down your friends.

Saturday comes around, and your friends still have not committed, so you head to the restaurant anyway. They seat the 2 of you at a table of 4, and your friends never show. Afraid the restaurant will charge you for no-show friends, you are pleasantly surprised to pay for the meal for the two even though you had a lovely big table ready for 4.

Autonomous Database Elastic Pools


Similarly, Autonomous Database Elastic Pools (Elastic Pools) allow you to plan for what you could use but only pay for what you actually do use in terms of ECPUs. You choose a set pool of ECPUs (e.g., 128, 256, 512,1024, 2048, 4096) but can use up to 4X that amount of ECPU (e.g., 4 * 128 = 512, 4* 256 = 1024) when needed. Because you have allocated the required space in the pool for each database when it needs to expand to that size, the capacity is there for you, but you only pay based on the pool utilization each hour. Elastic Pools also give you finer-grained controls via ECPUs with any database in the pool since Elastic Pools only require a minimum of 1 ECPU instead of the standard 2 ECPU for non-pooled databases.

Development and Test Environments


Your development and test environments are probably notorious for having resources that are either overallocated or have resources sitting idle. Idle and overallocated resources contradict the benefits of running in the cloud. I worked with a financial services customer that runs 11 non-production databases for every major application. All these environments, though, are not required to be fully on all the time. This is the situation where the elasticity of the cloud starts to pay off. With hundreds of applications spawning many different non-production copies, the chance of you having idle or overallocated databases is high if not properly managed.

Autonomous Database Autoscaling and scheduled startup and stops can help you at a database level by controlling the minimum ECPUs and shutting them down when they are not in use. Although this will help to cut down on unused asset costs, it does not take advantage of the economies of scale with a large amount of highly transitory databases you find in development.

Moving your development databases to an Elastic Pool minimizes or eliminates the time and effort to manage resources for transitory databases, which may start and stop multiple times per sprint. The Elastic Pool allows you to manage resources at a pool level with databases able to consume what they need and then release those resources back to other development databases without administrator intervention.

Example

Assume you have a shared development environment for 50 applications with five development/test environments each. Development may use these databases for a single sprint or less, but they must be sufficiently sized when in use and able to start up on demand without administrative wait time.

Configuring with Autoscaling

Using an Autoscaling Autonomous Database, you would also have to start and stop each database and individually manage each database.

  • With 50 Applications * 5 environments = 250 possible databases
  • In a non-pooled environment, you could start with a 2 ECPU with autoscaling up to 3X the initial size for each database.

Configuring with Elastic Pools

If you run this in an Elastic Pool, you can improve your efficiency further and get more resources and finer-grained controls.

  • The first benefit is that each database minimum is 1 ECPU
  • Some of these databases could be allocated to as low as 1 ECPU, while you may allocate test databases to a higher capacity.
  • As long as you stay below the 512 (4X of 128) pool capacity of a 128 ECPU Elastic Pool, you would only need a 128 ECPU Elastic Pool.
  • If a database only uses 1 ECPU but suddenly needs more capacity, it would have up to the allocated amount ready, which you should reflect in the allocation level. Elastic Pools immediately release those extra ECPUs to the pool when the workload scales back down.

Development High Peak Use Case

In the rare case that all 250 databases ran at low usage during a peak hour, in an autoscaling configuration, you would consume 250 databases at 2 EPCU each = 500 ECPU for that hour. Elastic Pools would handle this differently by scaling the Elastic Pool to meet the concurrent databases. At 250 databases with a minimum of 1 ECPU, this is half of the autoscale usage, and you could handle with a 256 ECPU Elastic Pool for that hour and scale back to 128 as the demand drops. The result is nearly halving the cost of development ECPUs for that hour.

Idle Development Database Use Case

If databases are used but left idle and not shut down, they will continue to be billed at the minimum ECPU in an autoscaling configuration. Databases in an Elastic Pool will consume the ECPUs in the Elastic Pool only when utilized. For example, 20% of the 250 development databases, each with a minimum configuration of 2 ECPUs, are left running by mistake. In an autoscaling configuration, this would be 25 databases * 2 ECPU, or 50 ECPU consumption for every hour they are left on. In Elastic Pools, unless you are utilizing these databases, they will not consume ECPUs from the pool, resulting in a savings of the cost of up to 50 ECPUs.

Conclusion

Autoscaling is a way to manage your capacity for individual databases. Elastic Pools takes this further by providing an innovative way to consolidate your database environment by simplifying Autonomous Databases' overall management and capacity planning across large estates of development databases. By understanding and using the concept of 4X capacity and allocating databases properly, you can put a pool in place that will lower overall costs and ensure the capacity is there when needed. The development environment is one of many use cases in which Elastic Pools can simplify and cut costs in a modern database estate.

Source: oracle.com

Saturday, May 18, 2024

How to help AI models generate better natural language queries

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.

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.

Adding Comments to your tables and columns


Let’s take an example. My database has 3 tables. The table names and columns are meaningless:

TABLE1 TABLE2  TABLE3 
CREATE TABLE table1 (
c1 NUMBER,
c2 VARCHAR2(200),
c3 NUMBER
)
CREATE TABLE table2 (
c1 TIMESTAMP,
c2 NUMBER,
c3 NUMBER,
c4 NUMBER,
c5 VARCHAR2(100),
c6 NUMBER,
c7 NUMBER
)
CREATE TABLE table3 (
c1 NUMBER,
c2 VARCHAR2(30)
)

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 adding database comments:

TABLE1
COMMENT ON TABLE table1 IS 'Contains movies, movie titles and the year it was released';
COMMENT ON COLUMN table1.c1 IS 'movie ids. Use this column to join to other tables';
COMMENT ON COLUMN table1.c2 IS 'movie titles';
COMMENT ON COLUMN table1.c3 IS 'year the movie was released';
TABLE2
COMMENT ON TABLE table2 IS 'transactions for movie views - also known as streams';
COMMENT ON COLUMN table2.c1 IS 'day the movie was streamed';
COMMENT ON COLUMN table2.c2 IS 'genre ids. Use this column to join to other tables';
COMMENT ON COLUMN table2.c3 IS 'movie ids. Use this column to join to other tables';
COMMENT ON COLUMN table2.c4 IS 'customer ids. Use this column to join to other tables';
COMMENT ON COLUMN table2.c5 IS 'device used to stream, watch or view the movie';
COMMENT ON COLUMN table2.c6 IS 'sales from the movie';
COMMENT ON COLUMN table2.c7 IS 'number of views, watched, streamed';
TABLE3
COMMENT ON TABLE table3 IS 'Contains the genres';
COMMENT ON COLUMN table3.c1 IS 'genre id. use this column to join to other tables';
COMMENT ON COLUMN table3.c2 IS 'name of the genre';
 
That’s it! The meaningless table and column names can now be understood by the LLM using Select AI.

Set up your Select AI profile to use comments


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.

begin

  dbms_cloud_ai.create_profile(

    profile_name => 'myprofile',
    attributes =>       
        '{"provider": "azure",
          "azure_resource_name": "my_resource",                    
          "azure_deployment_name": "my_deployment",
          "credential_name": "my_credential",
          "comments":"true",  -- enable the use of comments
          "object_list": [
            {"owner": "moviestream", "name": "table1"},
            {"owner": "moviestream", "name": "table2"},
            {"owner": " moviestream", "name": "table3"}             
          ]          
          }'
    );

    dbms_cloud_ai.set_profile(
        profile_name => 'myprofile'
    );
end;
/

Run your queries


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:

How to help AI models generate better natural language queries

Summary

There is no magic! Properly describing your data will help you use natural language to get answers. Comments not only help an LLM successfully formulate queries, they also help you understand your data as well!

Friday, May 17, 2024

Announcing Oracle Database 23ai: General Availability

General Availability


We are pleased to announce the general availability of Oracle Database 23ai. Over the last four years, Oracle Database Development has worked hard to deliver the next long-term support release of the Oracle Database, with a focus on AI and developer productivity. Given the focus on AI in this release of the database, we decided to change the database's name from Oracle Database 23c to Oracle Database 23ai. This reflects the focus of this release as well as the climate in which it is being released.

Announcing Oracle Database 23ai: General Availability

Game-Changing Innovations


Oracle Database 23ai has focused on three key areas.

  • AI for Data
  • Dev for Data
  • Mission Critical for Data

In this Blog, we'll describe some of the critical features of this release that highlight our work on these important focus areas and provide details when you see them on your platform of choice.

AI for Data


Our goal with AI for Data is two-fold:

  1. To enable app developers to add AI functionality into their data-driven applications more easily
  2. To incorporate GenAI capabilities into our products so that all users of Oracle Database, from data analysts to app developers and DBAs, can be more productive.

This is achieved by employing AI to streamline Oracle's data management processes, offering AI algorithms for uncovering new insights from your data, facilitating natural language interactions for database queries, and empowering users to store AI-generated vectors for swift and efficient object similarity searches. Let's delve into these features further.

Augmenting a new generation of AI models

People are feeling the impact of AI Large Language Models (LLM), exemplified by offerings such as ChatGPT, Google Gemini, Cohere, and LLaMA. Whilst LLMs are having a profound impact on the way we perform everyday tasks, one of the challenges that these engines face is that they are restricted to answering questions in the specific time window of their creation. They also lack context and details of the data held within your organization. To make these and other LLMs useful, we need to augment their existing understanding with data relevant to the questions you ask about the data held within your database. 

In Oracle Database 23ai, we are introducing AI Vector Search, a powerful new technology that enables you to leverage a new generation of AI models to generate and store vectors. These vectors, sometimes referred to as embeddings, are multi-dimensional representations of documents, images, videos, sound, etc. By encoding these objects as vectors, you gain the ability to look for similarities between them using mathematical calculations. The real power of Oracle Database23ai's solution is that you can combine these similarity searches with searches on your business data using simple SQL. Anyone with a basic understanding of SQL can create a powerful statement combining similarity and other search criteria. These types of queries provide LLMs with additional context, augmenting their knowledge and making their responses more accurate and relevant to your customers' or organizations' questions. To enable this functionality, we've added a new data type, new vector indexes, and extensions to the SQL language to make it incredibly simple to query vectors alongside your existing business data by leveraging Oracle Database 23ai's advanced analytical capabilities.

Announcing Oracle Database 23ai: General Availability

Secure encoding of data

To enable the considerable benefits that LLMs offer, we first need to enrich our understanding of our datasets and the objects within them. The models to encode these objects are potentially large and complex pieces of code. As a result, it has become common practice to offload this processing to third-party services. This can require you to share potentially sensitive information with third parties with the inherent risks that entails.

To ensure the secure encoding of objects, Oracle Database 23ai allows you to load your own trusted AI models directly into the database through its support of the ONNX standard. This enables Oracle Database 23ai to encode objects as they are inserted into the database. This enables the secure near real-time inferencing of objects and ensures that data does not need to be extracted from the database and handed off to a third-party service.

Asking questions naturally

While SQL is an incredibly powerful language, it can be a little challenging to get started with. To enable a broader range of users to ask the most complex questions of the Oracle Database, we are integrating with LLMs such as Cohere and Llama to allow you to ask questions using natural language. So you can simply ask a question like "Show me the last 4 quarters' sales of products that are popular with the younger generation". Oracle Database 23ai will share the table's metadata to answer the question with the LLM along with the user's question. The LLM understands the meaning of "younger generation" and converts it into a data range as a filter in the SQL query, which it returns to the database. We, of course, aren't limiting Oracle Database 23ai to just allowing you to query the information within the database. You'll also have the ability to ask questions on all aspects of the Oracle Database. 

Finding new insights in data

Since the release of Oracle Database 9iR2 over 20 years ago, the database has featured built-in Machine learning (ML) algorithms, enabling you to quickly look for patterns and trends in data held within its tables and predict customer behaviors. These ML algorithms give you the ability to use sophisticated ML algorithms without the need for complex ETL operations to extract the data and write back results.  These models could then be used to classify, cluster, and predict as your data is inserted or loaded into the Oracle Database, providing tangible business benefits like customer recommendations and fraud detection. Since that release, we've improved and added new ML algorithms and capabilities to the Oracle Database, creating one of the industry's most sophisticated and capable data mining platforms.

Available in all editions of the Oracle Database

AI Vector Search is part of Oracle Database 23ai and is available at no additional charge in Enterprise Edition, Standard Edition 2, Database Free, and all Oracle Database cloud services.

Feedback from early testers

AI Vector Search generated a great deal of interest even before the launch, and many customers and partners were keen to try out and provide feedback on the latest capabilities like AI Vector Search. Here's a sample of the feedback we received.

“We are happy to see AI Vector Search added to Oracle Database. We appreciate that we can run AI Vector Search in the same Oracle Database as our other workloads, which allows us to provide a reliable and secure solution.”

Shinichiro Otsuka, NRI Certified IT Architect, Nomura Research Institute, Ltd.

“AI Vector Search changes the way we think of the business by bringing AI to your data: for instance we can use natural language to query our documentation to find answers to questions customers are asking. This makes the process of serving customers much faster and the quality of the service improves as well. Being able to use the power of Generative AI with our own data makes a huge difference."

Heli Helskyaho, CEO, Miracle Finland Oy

“We have been consulting on various business transformation projects using advanced digital technology. Oracle Database 23ai AI Vector Search is very simple to implement by adding a vector column to the current relational database system. I am thrilled that the vector data is within a single record with existing data so that similarity reordering can be done with a single SQL statement. This makes it easy to combine large language models and company data to create and operate enterprise-level retrieval augmented generation systems.”

Shigeru Urushibara, Chairman, UL Systems Inc.

“With the decreasing domestic workforce in Japan, XCAT‘s customers want to adopt labor-saving measures. Oracle Database 23ai’s AI Vector Search allows customers to use SQL for vector retrieval, making it an excellent tool for engineers with little or no AI knowledge to handle vector data. In addition, the ability to manage AI data at no additional cost is a major attraction for many Oracle Database customers."

Mitsunori Yamane, President, Cross Cat Co., Ltd.

Dev for Data


Oracle Database 23ai focus was to make the experience of developing applications simpler by removing the complexity associated with your database interaction. Removing complexity from the application development process means you get more opportunities to focus on the intricacies of creating elegant applications that meet your customer's requirements rather than getting bogged down in technical details. Moreover, reducing complexity can lead to faster development cycles, this is crucial in today's fast-paced digital landscape, where market demands can shift rapidly.

JSON or Relational, a difficult choice?

Oracle 23ai introduces a number of key technologies to reduce the complexity for developers. Perhaps the most innovative and important of them is the introduction of JSON Relational Duality. This technology allows you to leverage the power of relational and the simplicity of JSON development approaches all within a single app. JSON provides an elegant data modeling approach where all of the relevant data needed to answer a query is contained in a single object without the need to perform complex joins across tables. The relational approach provides a flexible, storage-efficient, consistent data model that is easy to query with languages such as SQL. Historically the problems come when you are forced to choose which database modelling approach to take at the start of your application lifecycle. Decisions made at this stage may have implications much later on as the business requirements change. The beauty of JSON Relational Duality is that you can benefit from both approaches without the need to use complex and unwieldy Object Relational Mapping frameworks (ORMs). 

By creating simple JSON Duality views on top of relational tables you can build applications that use documents to query and update the underlying data sets. Data duplication, a fundamental issue in document modeling, is avoided, and even the complexities of database-level concurrency control are hidden from you as Oracle Database 23ai manages document-level serializability on your behalf. You can continue to use simple HTTP PUT, POST, and GET operations or use language-specific API such as Oracle's SODA API or even MongoDB API directly against the Oracle database. With JSON Duality Views the old phrase of "You can't have your cake and eat it" no longer holds true.

Announcing Oracle Database 23ai: General Availability

SQL just got a little easier

SQL remains one of the most popular development languages in use with application developers today. Its versatility when asking the simplest or most complex questions of your business data has made it the cornerstone of data management, a position it is likely to hold for the foreseeable future. That is not to say there are areas where it could be improved. In Oracle Database 23ai we listened to common enhanced requests and looked at what could be made simpler or offer more compelling ways to interact with the database. Examples of just a few of the SQL improvements we've made include the addition of two new datatypes "Boolean" and "Vector", we added "Data Usecase Domains" to allow you to enrich the meaning of datatypes used in table definitions, the removal of the need for "from dual" in simple SQL statements to improve readability, making it easier to aggregate over the "interval" datatype, the introduction of table value constructors to make it easy to specify multiple rows in insert select or merge statements. These are just a few of the many improvements we've made to SQL.

As with AI Vector Search, we also appreciate receiving a lot of useful feedback from customers and partners who participated in the Oracle Database 23ai Beta program. Here's a sample of the comments we received -

“JSON Relational Duality Views are a game changer for application development by finally solving the problem of object-relational mapping. And, we at last have ACID-compliant transactions in a multi-tier or web architecture.”

Peter de Vaal, Principal Consultant, Transfer Solutions

“JSON Relational Duality gives you the best of both worlds: Relational experts can work on the same data as Document database experts without having to learn a new skill. App developers have the flexibility they need, and database management is simpler. Oracle has taken a massive leap beyond other databases.”

Patrick Barel, Sr. Oracle Consultant, Qualogy

“Oracle Database 23ai with JSON Relational Duality Views and Oracle APEX have allowed us to create full-featured, standards-compliant applications for working with JSON healthcare data.”

Rade Pobulic, Technical Director, VDEL Informationstechnik & Consulting GmbH

Property Graphs modeling complex relationships

Graph databases provide a fresh perspective on modeling intricate relationships found in real-world scenarios. Yet, until recently, developers grappled with proprietary languages and having to ship data to databases tailored for managing these relationships. This hindered the widespread acceptance of this groundbreaking technology. Fortunately, the industry has taken a collaborative approach to bring graphs to the masses, culminating in the establishment of standards. These standards empower developers with the versatility and familiarity of SQL, fostering a more accessible landscape. Oracle Database 23ai stands as the pioneering commercial database to embrace this newfound standard. With these advancements, we anticipate a significant surge in the integration of Graph databases within enterprise ecosystems.

As with JSON Duality Views, you can express your intent on how you would like to use your data held within existing relational tables or your JSON collections through the user of property graph views. With a simple view, you can enrich the data to model the potentially complex relationships that your data holds. A new SQL extension makes it much simpler to write powerful queries to find a deeper understanding of information that would have been hard to describe using standard SQL. We've also added a new set of sophisticated graph algorithms (shortest path, classification, connects, etc. ), which will be released shortly after GA.

Announcing Oracle Database 23ai: General Availability

The property graph Property Graph is available in all editions of Oracle Database 23ai.

Mission Critical for Data


Oracle Database is renowned for powering some of the world's most vital applications. Over the years, it has established itself as a stalwart guardian of businesses' most precious asset: data. Unrivalled in its breadth of features, Oracle Database excels in safeguarding critical systems against unforeseen downtime. A prime example is Oracle Real Applications Clusters (RAC), a cutting-edge technology that enables all-active, shared disk databases, ideal for the most mission-critical scenarios. Oracle Active DataGuard and Oracle GoldenGate offer unparalleled flexibility in crafting both homogenous and heterogeneous architectures for data replication. 

Shard better, faster, simpler

For use cases where businesses are looking to distribute their data over larger distances, either for regulatory reasons where the data of users must be stored in the country the customer resides in or to reduce the latency of access associated with globally distributed applications: We introduced support for database sharding in Oracle Database 12c. Sharding distributes a dataset across a number of Oracle databases but is managed as a single logical data set. This sharded architecture allowed the database to be scaled up or down by adding and removing shards and allowing Oracle to automatically rebalance the dataset. Oracle is able to do this online and with little impact on the business as the concept of sharding is baked directly into the database.

In Oracle Database 23ai our Globally Distributed Database technology introduces support for Raft replication. This is a consensus-based protocol that facilitates the automatic configuration of replication across all shards. With raft, replication holds copies called replication units across all of the shards. In the advent of a shard failure or reconfiguration, Oracle Database 23ai automatically rebalances the data. The new Raft protocol also enables sub-second failover to ensure continued business continuity. 

Announcing Oracle Database 23ai: General Availability

Oracle 23ai brings a number of improvements across the board for our high availability products, such as the new "Local Rolling Database Maintenance" to simplify the impact of rolling patches in a cluster by standing up another instance on the same node that is receiving the patch. We are also introducing support for a new Data Guard Per Pluggable Database (PDB) allowing Pluggable Database level disaster protection between two Container databases (CDB) with each CDB running an active workload. We've also improved the integration and management of PDBs within Oracle Clusterware.

Caching data made simple

Caching data in the application tier can offer considerable benefits. It is often used to make applications more responsive and reduce the load on the database, as queries are offloaded to the cache typically located closer to the code. However, to achieve these benefits, developers face a number of challenges; one of the biggest is ensuring that the cache is consistent with the data held within the backend database or risk serving stale and potentially incorrect data. Developers are often forced to create complex code to manage these scenarios and often have to resort to design patterns such as "time to live" where data is periodically flushed from the cache and reloaded. These and many other challenges often mean the cache becomes difficult and expensive to maintain and, in some instances, a bigger problem than the one it was designed to solve.

In Oracle Database 23c we are looking to solve the problems of caches built against the Oracle Database with a new feature called "True Cache". True Cache is a diskless Oracle Instance running in front of the primary database. The True Cache instances leverage Active Data Guard technology to ensure it is automatically updated as data changes in the primary database instance. One of the most important features of this new caching technology is its simple configuration and minimal code changes that are needed to leverage the benefits it offers. 

Announcing Oracle Database 23ai: General Availability

Making SQL execution safer

One of the challenges that organisations face is continued attempts by malicious actors to steal data or disrupt their day-to-day activities. In Oracle Database 23ai, to prevent the execution of unauthorised SQL, be they via SQL-Injection attacks or simply by unauthorised staff, we are introducing SQL Firewall. SQL Firewall allows you to train the Database on what SQL is permitted to be executed. The "allow list" of SQL can then be used to either log unauthorised SQL or block its execution. Additional criteria can be added to allow exceptions for IP ranges or authorised calling programs. The power of SQL Firewall is that it is part of the Oracle Database, and as a result, it imposes very little overhead on the execution of SQL. Setting up and training SQL Firewall is incredibly simple being able to be done from a GUI or via a few simple calls to stored procedures. 

Announcing Oracle Database 23ai: General Availability

Over 300+ new features

I discussed the cloud release of Oracle Database 23ai and described some of the 300+ new features. Some other notable features include 

  • Java Script Stored Procedures
  • Priority Transactions
  • Data Usecase Domains
  • Schema privileges
  • Annotations
  • Boolean datatype
  • Developer Role
  • Read-Only-Per-PDB Standby
  • JSON Schema
  • Real-Time SQL Plan Management
  • Performance Improvements
  • Lock Free Reservations
  • Improved Microservice Support
  • XML and JSON Search Index Enhancements
  • And many many more

Platform Rollout

Oracle Database 23ai is now available on Oracle Exadata Cloud@Customer, OCI Exadata Database Service and OCI Base Database Service. It is also available in the Azure Oracle Database Service. For developers, Oracle Database 23ai is now available in Always Free Autonomous Database as well for download in the Autonomous Database 23ai Container Image and Oracle Database 23ai Free. We are also pleased to announce that Oracle GoldenGate 23ai and GoldenGate 23ai Free as also available for download. On-premises versions of Oracle Database 23ai for Linux (OL & RHEL 8/9) and Windows will be out shortly with other platforms rolling out over the coming months. For further details please check the Oracle Support note Doc ID 742060.1

The general availability of Oracle Database 23ai marks a new phase in this important release. Thousands of developers have contributed to its design, development and testing resulting in what we believe is the very best enterprise database in the market.

Source: oracle.com

Wednesday, May 15, 2024

Autonomous Health Framework (AHF) Version 24.2 Released

Oracle Autonomous Health Framework (AHF) works autonomously 24x7 to keep database systems healthy and running while minimizing human reaction time. Utilizing applied machine-learning technologies, AHF provides early warnings or automatically solves operational runtime issues faced by Database and System administrators in the areas of availability and performance.

It's the same technology Oracle uses in the cloud to keep the Autonomous Database running, and it's available for you at no extra cost as part of your existing software support agreement.

Insights in Diagnostic Collections


AHF now collects Insights data with diagnostic collections.

AHF Insights provides a bird's-eye view of the entire system. It helps spot problems, drill into the root cause and understand how to resolve.

Autonomous Health Framework (AHF) Version 24.2 Released

AHF insights provides a view of:

  • Configuration
  • Environment topology
  • Metric
  • Logs

Data is viewable in reports covering:

  • System Configuration
  • System State
  • Anomalies in Operating System
  • Best Practice Compliance
  • System Traces
  • Root cause for issues and fixes in some anomalous cases

AHF diagnostic collection zips now include a sub-zip named <machine>_insights_<time>.zip containing the Insights report. This makes it quicker and easier to understand and resolve problems.

Insights for Single Instance Systems


AHF Insights are now available on single instance Linux systems.

AHF is on a mission to make it easier to maintain Oracle Databases.

Customers rely on AHF Insights to turn complex diagnostic data into simple actionable steps. However, until now it has only been available on Grid Infrastructure systems.

With AHF 24.2 Insights now adds support for single instance Linux systems, bringing this much-loved ease and simplicity to even more customers.

Autonomous Health Framework (AHF) Version 24.2 Released

To generate an Insights report simply run:

ahf analysis create --type insights

Transfer the resulting zip to a system with browser support, extract it and open index.html.

Component Diagnostic Purging


AHF now supports component level diagnostic purging.

For many years, AHF has had automatic purging capability, which removes diagnostic collections and log files based on a purge policy.

However, there are some situations where diagnostics within one area grow faster than others, so it can be useful to be able to purge on a component-by-component basis for files that don’t meet the purge policy.

AHF has now extended the purge capability to enable cleaning at a component level, as well as to purge even if TFA is not running.

Available purge options can be seen with the command:

tfactl purge -h

Exadata Netdiag in Diagnostic Collections


AHF now captures Exadata netdiag output as part of the OS component in diagnostic collections.

Oracle Exadata systems have a tool called netdiag, which generates diagnostics for Nvidia/Mellanox. Output from netdiag is often required by Oracle Support to help resolve network specific issues.

AHF now collects Exadata netdiag output as part of the OS component of TFA collection. If the file modified date falls in the collection range, then the file will be included in the collection.

To ensure netdiag files are included within a collection use the command:

tfactl diagcollect -os -last 1h

Combine Diagnostics From All Machines in a Single Zip File


TFA diagcollect introduces the command option -singlearchive to combine zips from all nodes into a single diagnostic collection zip.

AHF has a long-standing ability to collect diagnostics from all Grid Infrastructure (GI) nodes using the tfactl diagcollect. This creates a series of zips, one for each node on the originating machine. However for customers with a large cluster, this can result in needing to provide many different zip files to Oracle Support.

AHF can now combine all files into a single zip archive on the initiating node by added the option -singlearchive.

For example:

tfactl diagcollect -last 1d -os -singlearchive

Source: oracle.com

Monday, May 13, 2024

Oracle Database 23ai Now Available in Cloud

We are pleased to announce the availability of Oracle Database 23ai on Exadata Database Service, Base Database Service, and Always Free Autonomous Database. Oracle Database 23ai is the latest long-term support release of Oracle Database, with a focus on AI, developer productivity, and mission-critical data.

Oracle Database 23ai enables developers to add AI functionality to data-driven applications more easily and incorporate GenAI capabilities so that all users of Oracle Database, from data analysts to developers and DBAs, can be more productive. Included are new features such as AI Vector Search, a powerful new technology that enables you to leverage a new generation of AI models to generate and store vectors.

Oracle Database 23ai Converged Database

Oracle Database 23ai also extends Oracle’s converged database approach with JSON Relational Duality and Operational Property Graph. These enhancements enable developers to use simple JSON document and graph APIs to access data yet store the data in a more efficient relational structure. With Oracle Database 23ai developers can more easily create new innovative applications that take your business to the next level.

Oracle Database 23ai further enhances mission-critical capabilities by improving response times with True Cache, helping protect databases against SQL injection attacks with SQL Firewall, and introducing RAFT replication in Oracle Globally Distributed Database to help achieve ultra-high scalability and availability. In addition to these highlights, there are over 300 major new features that are available with Oracle Database 23ai.

Oracle’s database services in the cloud are the best place to run Oracle Database 23ai. Cloud automation can quickly provision new databases, including all advanced options such as Oracle Real Application Clusters (Oracle RAC) and Oracle Active Data Guard. You can get started quickly with Always Free Autonomous Database enabling you to easily try the new features and develop new applications. If you need more resources and control, you can provision your databases on flexible VM shapes with Base Database Service or on dedicated, database-optimized infrastructure with Exadata Database Service. You can also deploy Oracle Database 23ai in an Oracle Cloud Infrastructure (OCI) public cloud region, in a hybrid cloud with Oracle Exadata Cloud@Customer, or a multicloud environment with Oracle Database@Azure.

Oracle Exadata is the preferred platform for running Oracle Database and has been enhanced with new features for Oracle Database 23ai. In addition to numerous performance features for OLTP, analytics, and mixed workloads, Exadata now includes new optimizations for accelerating AI vector database operations by up to orders of magnitude. Exadata delivers fast end-user response with higher numbers of users, larger volumes of data, and extremely low latency for AI Vector Search.

How does Exadata do this? Exadata uses both in-memory and storage-based vector indexes to deliver high performance AI Vector Search at any scale. AI Vector Search in Exadata uses a new storage protocol that is optimized to achieve low latency even with large volumes of vector data. Exadata further improves performance by offloading AI Vector Search functionality to the storage servers.

We are excited for you to use Oracle Database 23ai in the cloud and develop applications using its new features.

Source: oracle.com