Analytical Storage は、CData Virtuality がマテリアライゼーションを配置し、必要に応じてインデックスを作成して自動的に最適化し、基礎となるデータベースのタイプによって許可される特別なデータベースです。分析ストレージを活用することで、クエリのパフォーマンスを劇的に向上させることができます。

Creating a Data Source

CData Virtuality Server では、異なるDBMS を分析ストレージ(DWH)として使用できます:Oracle、Microsoft SQL Server、PostgreSQL、MySQL、EXASOL、SingleStore(旧MemSQL)、Snowflake、Teradata、Vertica など。サポートされている DBMS の完全なリストについては、see our websiteを参照してください。

分析ストレージ・データ・ソースは、一般的に、他のJDBC データ・ソースと同様に作成されます。これに関する詳しい情報は、JDBC Connectorsセクションをご参照ください。Analytical Storage データソースには、importer.importIndexesからTRUEを設定することが重要であることに注意してください。

Using Microsoft SQL Server and MySQL as Analytical Storage is not recommended due to numerous limitations.

If you plan to use MySQL as Analytical Storage, please consider MySQL as Analytical Storage first and MS SQL Server as Analytical Storage in the case of MS SQL Server.

Configuring a Data Source as Analytical Storage

エイリアスとスキーマ/データベースの両方がDWHを名前として持つ場合、このステップは省略できます。そうでない場合、  CData Virtuality Server は、分析ストレージデータソースにどのエイリアスを使用し、どのデータベース(MySQL)のどのスキーマ(Oracle、PostgreSQL、MS SQL)を分析ストレージとして設定するかを通知する必要があります:

SYSADMIN.setCurrentDWH(<alias_used_for_dwh>, <schema or database>)

<schema or database>は元のDBMSと同じCASEを使って提供されるべきです。

DWH がどのように構成されているかを確認するには、次の手順を使用します:

SYSADMIN.getCurrentDWH()

Examples

Configuring an Oracle Analytical Storage

CALL SYSADMIN.createConnection('dwh_alias','oracle','db=XE,host=127.0.0.1,user-name=johndoe,password=secret');;
 
CALL SYSADMIN.createDatasource('dwh_alias','oracle','importer.useFullSchemaName=false, importer.schemaPattern="DWH_SCHEMA", importer.tableTypes="TABLE,VIEW", importer.importIndexes=true','');;
 
CALL SYSADMIN.setCurrentDWH('dwh_alias', 'DWH_SCHEMA');;

Configuring a MySQL Analytical Storage

CALL SYSADMIN.createConnection('dwh_alias','mysql','db=dwh_db,host=127.0.0.1,user-name=johndoe,password=secret');;
 
CALL SYSADMIN.createDatasource('dwh_alias','mysql5','importer.useFullSchemaName=false, importer.tableTypes="TABLE,VIEW", importer.importIndexes=true','');;
 
CALL SYSADMIN.setCurrentDWH('dwh_alias', 'dwh_db');;

Configuring an Exasol Analytical Storage

CALL SYSADMIN.createConnection('dwh_alias','exasol','host=<host>,user-name=<username>,password=<pwd>');;
 
CALL SYSADMIN.createDatasource('dwh_alias','exasol','importer.useFullSchemaName=false,importer.schemaPattern=<username>', 'ForceQuotedIdentifiers=true,SupportsOrderBy=true');;
 
CALL SYSADMIN.setCurrentDWH('dwh_alias','<username>');;

Checking Analytical Storage Settings

 SELECT * FROM SYSADMIN.getCurrentDWH();;


setCurrentDWH()プロシージャは OPTION $NOFAILとともに使用できます。 

  • setCurrentDWHは、デフォルトで に提供されるサポートされていない DWH プラットフォームまたは存在しない Schema のチェックを実行し、チェックに失敗した場合、対応するエラーメッセージとともに をスローします;setCurrentDWH()UnsupportedDwhPlatformException
  • setCurrentDWH()システムプロシージャ が呼び出されたときにOPTION $NOFAILが追加された場合、上記のチェックは行われず、setCurrentDWH()は例外をスローしません;
  • setCurrentDWH() がサポートされていない DWH プラットフォームに対して呼び出された場合 (  OPTION $NOFAILの場合)、getCurrentDWH()は実際のデータ (DWH が設定されていない場合は空のセット、または現在サポートされているセット DWH) を返します。

 以下はその例です:

CALL SYSADMIN.setCurrentDWH(nameInDv => 'salesforce2', nameInSource => 'salesforce2') OPTION $NOFAIL;;

そしてこれがその結果の例です:

-- MySQL data source
CALL SYSADMIN.createConnection('ms','mysql','host=localhost,db=adventureworks,user-name=root,password=root');;
CALL SYSADMIN.createDatasource('ms','mysql5','importer.defaultSchema=adventureworks,importer.useFullSchemaName=False,importer.tableTypes="TABLE,VIEW",importer.importIndexes=false','');;
 
--set MySQL data source as DWH
CALL SYSADMIN.setCurrentDWH(nameInDv => 'ms', nameInSource => 'ms');;
CALL SYSADMIN.setCurrentDWH(nameInDv => 'salesforce2', nameInSource => 'salesforce2') OPTION $NOFAIL;;
SELECT * FROM SYSADMIN.getCurrentDWH();;

最後のブロックを実行すると、次のような結果が表示されます:

nameInDV

nameInSource

ms
ms

CData Virtuality Studio エクスポーターは、setCurrentDWH()  システムプロシージャが呼び出されると、OPTION $NOFAILを追加します。