The decoupling of a users physical machine from the desktop and software

Desktop Virtualization Journal

Subscribe to Desktop Virtualization Journal: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Desktop Virtualization Journal: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Desktop Virtualization Authors: Bruce Popky, Vinod Mohan, Peter Silva, Jayaram Krishnaswamy, Bob Gourley

Related Topics: Cloud Computing, Virtualization Magazine, Desktop Virtualization Journal

Article

Data Virtualization in SQL Server

Data access patterns for petabyte enterprise

Data Virtualization is the new name for aconcept that allows enterprises to access their information contained in disparate data sources in a seamless way. Key principles behind Data Virtualization are:

  • Abstraction: Provides location, API, language and storage technology independent access of data
  • Federation: Converges data from multiple disparate data sources
  • Transformation: Enriches the quality and quantity of data on a need basis
  • On-Demand Delivery: Provides the consuming applications the required information on-demand

Ideally data virtualization supports the following QoS (quality of service) for its consumers:

  • Data Security
  • Data Quality
  • Data Governance
  • Query Optimization
  • Caching / Replication

Data Virtualization and Cloud
Data virtualization is not a new concept. Several vendors have implemented it in different forms. However, with the emergence of cloud and XaaS as a Service model, data virtualization gains more importance, as it enables enterprises to serve the information needed to the business in a seamless way, without worrying about disparate data sources and patterns that are typical of large enterprises. The following are the typical use cases of data virtualization in the cloud:

  • Consumers invoke SaaS-based entry points of complex business applications, which in turn utilizes data virtualization techniques to converge disparate data sources and provide the information requested
  • Large workloads from the consumer can be posted to abstracted end points, which in turn are shredded into smaller packets that can be consumed by multiple grids inside cloud to be stored in disparate data sources across the enterprise.

SQLServer Data Virtualization

While we may like to see how SQL Azure fits as a data virtualization server, I feel that SQL Azure may be yet too mature to be positioned as a data virtualization engine. Rather a counterpart on the data center can be positioned as a data virtualization server.

Abstraction
WCF Data Services (formerly known as "ADO.NET Data Services") is a component of the .NET Framework that enables you to create services that use the Open Data Protocol (OData) to expose and consume data over the Web or intranet by using the semantics of REST. By making the WCF Data Services an abstraction layer around SQL Server, much of the data virtualization needs of storage and the API independent access to the enterprise data can be achieved.

Federation
A linked server configuration enables SQL Server to execute commands against OLE DB data sources on remote servers. Linked servers offer the following advantages:

  • Remote server access.
  • The ability to issue distributed queries, updates, commands, and transactions on heterogeneous data sources across the enterprise.
  • The ability to address diverse data sources similarly.

Transformation
Apart from Linked Server, TSQL stored procedures can act as utility transformation pipes that can transform data on the fly. Another feature is CLR stored procedures. The common language runtime (CLR) is the heart of the Microsoft .NET Framework and provides the execution environment for all .NET Framework code. With the CLR hosted in Microsoft SQL Server (called CLR integration), you can author stored procedures, triggers, user-defined functions, user-defined types, and user-defined aggregates in managed code. A CLR stored procedure can also invoke other web services that will provide viable options for transformation in a data virtualization scenario.

On-Demand Delivery
Distributed (across server or instance) partitioned view
: Tables participating in the view reside in different databases that reside on different servers or different instances. These DPV enable the selection of data from respective server only when the condition warrants. Otherwise they provide transparent access to data residing in multiple servers.

Summary
This is not an exercise to provide step-by-step instructions on how to create a data virtualization layer in the enterprise. But rather the concepts behind the data virtualization are quite old and have existed for a while. In fact most of the above features in SQL Server 2008 were in existence from SQL Server 2005 or even earlier.

However, with the explosion of data, large enterprises have to rethink data abstraction and distribution strategies and may need to augment the traditional data integration patterns with data virtualization options.

SQL Server is a popular database whose cloud version, SQL Azure, is already available. It was chosen as an example because we expect these features to be available in the cloud shortly and it provides a path for data virtualization on the cloud.

Also much like OLAP implementations are done within traditional relational databases (ROLAP) versus multi-dimensional servers (MOLAP), we may soon need to decide between utilizing existing relational databases like SQL Server or SQL Azure for implementing data virtualization services within the enterprise or utilizing pure specialized data virtualization products like Composite Software Virtualization Solutions, which require a separate analysis and write up.

More Stories By Srinivasan Sundara Rajan

Highly passionate about utilizing Digital Technologies to enable next generation enterprise. Believes in enterprise transformation through the Natives (Cloud Native & Mobile Native).