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

Snowflake データ ソースの追加

重大な変更

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

クライアント側

手順 1 - RevealView.onDataSourcesRequested イベントのイベント ハンドラーを追加します。

var revealView = new $.ig.RevealView("#revealView");
revealView.onDataSourcesRequested = (callback) => {
//add code here
callback(new $.ig.RevealDataSources([], [], false));
};

手順 2 - RevealView.onDataSourcesRequested イベント ハンドラーで、RVSnowflakeDataSource オブジェクトの新しいインスタンスを作成します。Title プロパティを設定します。RVSnowflakeSource オブジェクトを作成したら、それをデータ ソース コレクションに追加します。

revealView.onDataSourcesRequested = (callback) => {
var snowflakeDataSource = new $.ig.RVSnowflakeDataSource();
snowflakeDataSource.title = "My Snowflake";

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

アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Snowflake データ ソースが [データ ソースの選択] ダイアログに表示されます。

手順 3 - RVSnowflakeDataSourceItem オブジェクトの新しいインスタンスを作成して、新しいデータ ソース項目を追加します。データベース テーブルに対応する Id および Title プロパティを設定します。RVSnowflakeDataSourceItem オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。

revealView.onDataSourcesRequested = (callback) => {
var mySnowflakeDataSource = new $.ig.RVSnowflakeDataSource();
mySnowflakeDataSource.id = "MySnowflakeDataSource";
mySnowflakeDataSource.title = "My Snowflake";

var mySnowflakeDataSourceItem = new $.ig.RVSnowflakeDataSourceItem(mySnowflakeDataSource);
mySnowflakeDataSourceItem.id = "MySnowflakeDataSourceItem";
mySnowflakeDataSourceItem.title = "My Snowflake Item";

callback(new $.ig.RevealDataSources([mySnowflakeDataSource], [mySnowflakeDataSourceItem], true));
};

アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Snowflake 項目データ ソースが [データ ソースの選択] ダイアログに表示されます。

サーバー側

手順 1 - クライアントでデータ ソースとデータ ソース項目を作成しますが、接続情報は指定しません。idtitle、および/または subtitle のみを入力してください。

revealView.onDataSourcesRequested = (callback) => {
var mySnowflakeDataSource = new $.ig.RVSnowflakeDataSource();
mySnowflakeDataSource.id = "MySnowflakeDataSource";
mySnowflakeDataSource.title = "My Snowflake";

var mySnowflakeDataSourceItem = new $.ig.RVSnowflakeDataSourceItem(mySnowflakeDataSource);
mySnowflakeDataSourceItem.id = "MySnowflakeDataSourceItem";
mySnowflakeDataSourceItem.title = "My Snowflake Item";

callback(new $.ig.RevealDataSources([mySnowflakeDataSource], [mySnowflakeDataSourceItem], true));
};

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

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

//only change the table if we have selected our custom data source item
if (snowflakeDataSourceItem.Id == "MySnowflakeDataSourceItem")
{
snowflakeDataSourceItem.Schema = "TPCDS_SF100TCL";
snowflakeDataSourceItem.Table = "CUSTOMER";
}
}

return Task.FromResult(dataSourceItem);
}

public Task<RVDashboardDataSource> ChangeDataSourceAsync(IRVUserContext userContext,
RVDashboardDataSource dataSource)
{
if (dataSource is RVSnowflakeDataSource snowflakeDataSource)
{
snowflakeDataSource.Account = "your-account";
snowflakeDataSource.Host = "your-account-host";
snowflakeDataSource.Database = "SNOWFLAKE_SAMPLE_DATA";
}

return Task.FromResult(dataSource);
}
}
コードの取得

このサンプルのソース コードは GitHub にあります。