× Heads up!

Aqua Data Studio / nhilam

Follow
IDE for Relational Databases
×
tomconrad reported 2018-06-01T02:52:49Z  · last modified 2020-01-24T15:05:04Z

Add support for Azure Data Warehouse


Dev
QA
Priority Low
Complexity Unknown
Component DB - Azure Data Warehouse
Version Future
We will need to create a separate server properties to handle Azure Data Warehouse(ADW). We will call it MS Data Warehouse (Azure). This is the same as adding a new database but we can use most of the current MS SQL Database (Azure) infrastructure. One difference being ADW can't perform operations within a transaction therefore we will have to shutoff transactions and have autocommit always turned on.
 
The new connection should use the Microsoft driver only and not jTDS. See CoreAzureDriver class as an example. AzureDriverInterfacePanel class does not need to exist in the new connection since we are using a single driver. This is different from our current MS SQL Database (Azure) connection. We can override places like CommonSchemaTab->runInTransaction method to be false for ADW but will need to test all area's of the ADS code to make sure transactions are turned off and autocommit is turned on. 
 
File->Options->Query Analyzer->MS SQL Database (Azure)->Auto Commit and the Auto Commit button on the Query Analyzer menu bar only for ADW need to be grayed out so they can't be used.
 
 
When displaying databases in the schema tree, we need to change the database extraction query to only look for the databases associated with each connection. Either MS SQL Database (Azure) or  MS Data Warehouse (Azure). 
 
For MS Data Warehouse (Azure), AzureDatabaseNode->getSelect should be changed to something like:
 
return "SELECT name FROM sys.databases d JOIN sys.database_service_objectives dso ON d.database_id = dso.database_id WHERE d.source_database_id is null and dso.edition = 'DataWarehouse' ORDER BY name";
 
For MS SQL Database (Azure), AzureDatabaseNode->getSelect should be changed to something like:
 
return "SELECT name FROM sys.databases d JOIN sys.database_service_objectives dso ON d.database_id = dso.database_id WHERE d.source_database_id is null and dso.edition != 'DataWarehouse' ORDER BY name";
 
Need to be connected to the master database to run these databases.
 
All of the extract queries will need to be tested for ADW and changed as required to use the ADW tables or make the distinction between the two connections.
 
Here are some example queries that can be used to select database type and version:
 
select @@version
 
select SERVERPROPERTY('EngineEdition')
5 = SQL Database
6 - SQL Data Warehouse
 
select SERVERPROPERTY('Edition') 
'SQL Azure' indicates SQL Data Warehouse
 
SELECT  
  SERVERPROPERTY('MachineName') AS ComputerName,
  SERVERPROPERTY('ServerName') AS InstanceName,  
  SERVERPROPERTY('Edition') AS Edition,
  SERVERPROPERTY('ProductVersion') AS ProductVersion,  
  SERVERPROPERTY('ProductLevel') AS ProductLevel
 
SELECT  d.name, slo.*    
FROM sys.databases d   
JOIN sys.database_service_objectives slo    
ON d.database_id = slo.database_id
 
See documentation here.

 

1 attachment

Issue #15591

New
 
 
Completion
No due date
No fixed build
No time estimate

About AquaClusters Privacy Policy Support Version - 19.0.2-4 AquaFold, Inc Copyright © 2007-2017