メインコンテンツまでスキップ

データ ソース

重大な変更

現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、サポートされるデータ ソース トピックを参照してください。

Reveal SDK は、分析ツール、コンテンツ マネージャー、クラウド サービス、CRM、データベース、スプレッドシート、公開データ ソースなど、30 を超えるデータ ソースをサポートしており、毎月さらに多くのデータ ソースが出荷されています。データ ソースは、ダッシュボードのどこからデータが取得されるかを定義します。各データ ソースには、接続文字列、ユーザー ID、パスワードなど、データに接続してデータを取得するためにコードで設定した固有のプロパティがあります。

Reveal SDK には、データ ソースに関して 2 つの概念があります。

  1. データ ソース - これはデータの主要なソースです。たとえば、SQL Server をデータ ソースにすることができます。
  2. データ ソース項目 - これは、データ ソースから利用できる特定の項目です。例えば、SQL Server の特定のテーブル。

データ ソース (データ ストア) とデータ ソース項目 (データ項目) は、Reveal View の [データ ソースの選択] ダイアログで別々に分類されます。

Reveal SDK でデータ ソースを作成するには、2 つの方法があります。

  1. クライアント側
  2. サーバー側

データ ソースのインストール

Reveal SDK で使用するデータ ソースを作成する前に、Reveal SDK アプリケーションで使用するデータ ソースごとに正しいパッケージをインストールする必要があります。

手順 1 - 使用するデータ ソースのパッケージをインストールします。どのデータ ソースがサポートされているか、およびどのパッケージをインストールする必要があるかについては、サポートされているデータ ソース セクションを参照してください。

手順 2 - データ ソース パッケージをインストールした後、データ ソースを Reveal SDK に登録します。

using Reveal.Sdk;
using Reveal.Sdk.Data;

builder.Services.AddControllers().AddReveal( builder =>
{
//all data sources use the RegisterXXX naming convention
builder.DataSources.RegisterMicrosoftSqlServer();
});

クライアントでのデータ ソースの作成

クライアントでデータ ソースまたはデータ ソース項目を追加するには、RevealView.onDataSourcesRequested イベントにイベント ハンドラーを追加します。イベント ハンドラーでは、ダッシュボードで使用されるさまざまなタイプのデータ ソースまたはデータ ソース項目のインスタンスを作成するコードを記述します。次に、これらのインスタンスを callback に渡して、[データ ソースの選択] ダイアログで使用できるようにします。

var revealView = new $.ig.RevealView("#revealView");
revealView.onDataSourcesRequested = (callback) => {

//provide all data sources and data source items in callback
callback(new $.ig.RevealDataSources([], [], false));
};
  • データ ソースは、コールバックの最初のパラメーターに配列として提供されます。
  • データ ソース項目は、コールバックの 2 番目のパラメーターに配列として提供されます。
  • 3 番目のパラメーターは、ダッシュボードに保存されているデータ ソースが [データ ソースの選択] ダイアログに表示されるかどうかを決定します。false の場合、onDataSourcesRequested イベントで作成されたデータ ソースのみが表示されます。

クライアントでデータ ソースを作成するときは、データ ソースまたはデータ ソース項目のすべての接続情報を提供することが重要です。例えば、MS SQL Server のデータ ソースを作成する場合は、hostdatabase などの接続情報を提供する必要があります。データ ソース項目の場合は、table を提供する必要があります。

revealView.onDataSourcesRequested = (callback) => {

var sqlServerDS = new $.ig.RVSqlServerDataSource();
sqlServerDS.host = "your-db-host";
sqlServerDS.database = "your-db-name";
sqlServerDS.title = "My SQL Server";

var sqlServerDSI = new $.ig.RVSqlServerDataSourceItem(sqlServerDS);
sqlServerDSI.title = "My SQL Server Item";
sqlServerDSI.table = "TableName";

callback(new $.ig.RevealDataSources([sqlServerDS], [sqlServerDSI], false));
};

データ ソースまたはデータ ソース項目で使用できるプロパティについては、データ ソースの対応するヘルプ トピックまたは API ドキュメントを参照してください。

警告

クライアントで JavaScript を使用してデータ ソースとデータ ソース項目を作成すると、サーバー名、ホスト名、IP アドレス、ポート番号、エンドポイントなどのすべての接続情報がブラウザーに公開されます。これにより、ユーザーはこれらの値を表示できるだけでなく、変更することもできます。公開する情報に注意し、クライアント側のアプローチを使用してデータ ソースを作成することに関連する潜在的なセキュリティ リスクを考慮することが重要です。

サーバーでのデータ ソースの作成

サーバーでのデータ ソースまたはデータ ソース項目の作成は、クライアントでの作成と似ています。主な違いは、クライアントで接続情報が提供されないことです。IRVDataSourceProvider を実装することにより、すべての接続情報がサーバー上で提供されます。

イベント ハンドラーを RevealView.onDataSourcesRequested イベントに追加することから始め、データ ソースとデータ ソース項目を作成します。この例では、MS SQL Server を使用しています。データ ソースの識別に使用できる id と、[データ ソースの選択] ダイアログに表示される title のみを設定していることに注意してください。

var revealView = new $.ig.RevealView("#revealView");
revealView.onDataSourcesRequested = (callback) => {

var sqlServerDS = new $.ig.RVSqlServerDataSource();
sqlServerDS.id = "MySqlServerDataSource";
sqlServerDS.title = "My Sql Server";

var sqlServerDSI = new $.ig.RVSqlServerDataSourceItem(sqlServerDS);
sqlServerDSI.id = "MySqlServerDataSourceItem";
sqlServerDSI.title = "My Sql Server Item";

callback(new $.ig.RevealDataSources([sqlDataSource], [sqlServerDSI], false));
};

次に、サーバー アプリケーションで、データ ソース プロバイダーを作成する必要があります。データ ソース プロバイダーは、Reveal SDK に接続方法を指示するデータ ソースおよびデータ ソース項目のさまざまなプロパティを変更するために使用されます。

データ ソース プロバイダーは、次の 2 つの手順で作成できます。

手順 1 - データ ソース プロバイダーを作成します。この例では、クライアントで定義された MS SQL Server データベースに接続するための接続情報を提供しています。これを実現するために、使用しているデータ ソース/項目のタイプを決定し、オブジェクトで使用可能なプロパティを設定します。

public class DataSourceProvider : IRVDataSourceProvider
{
public Task<RVDataSourceItem> ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
{
if (dataSourceItem is RVSqlServerDataSourceItem sqlServerDsi)
{
//required: update underlying data source
ChangeDataSourceAsync(userContext, sqlServerDsi.DataSource);

//only change the table if we have selected our data source item
if (sqlServerDsi.Id == "MySqlServerDatasourceItem")
{
//set the table/view
sqlServerDsi.Table = "Orders";
}
}
return Task.FromResult(dataSourceItem);
}

public Task<RVDashboardDataSource> ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
if (dataSource is RVSqlServerDataSource sqlDatasource)
{
sqlDatasource.Host = "10.0.0.20";
sqlDatasource.Database = "Northwind";
sqlDatasource.Schema = "dbo";
}
return Task.FromResult(dataSource);
}
}

手順 2 - データ ソース プロバイダーを Reveal SDK に登録します。

builder.Services.AddControllers().AddReveal( builder =>
{
builder.AddDataSourceProvider<DataSourceProvider>();
});
Important

ChangeDataSourceAsync メソッドでデータ ソースに加えられた変更は、ChangeDataSourceItemAsync メソッドには引き継がれません。どちらの方法でも、データ ソース プロパティを更新する必要があります。上記の例に示すように、ChangeDataSourceItemAsync メソッド内で ChangeDataSourceAsync メソッドを呼び出し、データ ソース項目の基になるデータ ソースをパラメーターとして渡すことをお勧めします。

サポートされるデータ ソース

今後の拡張機能

現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。これにより、アプリケーションのサイズが削減されるだけでなく、新しいデータ ソースのリリースや既存のデータ ソースの更新も容易になります。Reveal SDK の次の進化に向けて取り組んでまいりますので、今しばらくお待ちいただきますようお願いいたします。

以下の表を使用して、サポートされているデータ ソースと、ターゲット フレームワークにインストールする必要があるパッケージを確認してください。

Data SourceASP.NETJAVANode.js
Amazon AthenaNuGet Badge for Amazon AthenaIncluded in SDKIncluded in SDK
Amazon RedshiftNuGet Badge for Amazon RedshiftIncluded in SDKIncluded in SDK
Amazon S3NuGet Badge for Amazon S3Included in SDKIncluded in SDK
BoxNuGet Badge for BoxIncluded in SDKIncluded in SDK
CSV (Comma Separated Values)Included in SDKIncluded in SDKIncluded in SDK
DropboxNuGet Badge for DropboxIncluded in SDKIncluded in SDK
Google Analytics 4NuGet Badge for Google Analytics 4Included in SDKIncluded in SDK
Google BigQueryNuGet Badge for Google BigQueryIncluded in SDKIncluded in SDK
Google DriveNuGet Badge for Google DriveIncluded in SDKIncluded in SDK
Google SheetsNuGet Badge for Google SheetsIncluded in SDKIncluded in SDK
In-Memory DataIncluded in SDKIncluded in SDKIncluded in SDK
JSONIncluded in SDKIncluded in SDKIncluded in SDK
Microsoft Analysis ServicesNuGet Badge for Microsoft Analysis ServicesIncluded in SDKIncluded in SDK
Microsoft Azure Analysis ServicesNuGet Badge for Microsoft Azure Analysis ServicesIncluded in SDKIncluded in SDK
Microsoft Azure SQL DatabaseNuGet Badge for Microsoft Azure SQL DatabaseIncluded in SDKIncluded in SDK
Microsoft Azure Synapse AnalyticsNuGet Badge for Microsoft Azure Synapse AnalyticsIncluded in SDKIncluded in SDK
Microsoft ExcelIncluded in SDKIncluded in SDKIncluded in SDK
Microsoft OneDriveNuGet Badge for Microsoft OneDriveIncluded in SDKIncluded in SDK
Microsoft SharePointNuGet Badge for Microsoft SharePointIncluded in SDKIncluded in SDK
Microsoft SQL ServerNuGet Badge for Microsoft SQL ServerIncluded in SDKIncluded in SDK
MongoDBNuGet Badge for MongoDBIncluded in SDKIncluded in SDK
MySQLNuGet Badge for MySQLIncluded in SDKIncluded in SDK
OData FeedIncluded in SDKIncluded in SDKIncluded in SDK
OracleNuGet Badge for OracleIncluded in SDKIncluded in SDK
PostgreSQLNuGet Badge for PostgreSQLIncluded in SDKIncluded in SDK
RESTIncluded in SDKIncluded in SDKIncluded in SDK
SnowflakeNuGet Badge for SnowflakeIncluded in SDKIncluded in SDK
TSV (Tab Separated Values)Included in SDKIncluded in SDKIncluded in SDK

SDK に含まれている - このデータ ソースにインストールするための個別のパッケージはありません。データ ソースは Reveal SDK に含まれています。