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

Snowflake データ ソース

はじめに

Snowflake は、データ分析、データ共有、ビジネス インテリジェンス ワークロード向けにスケーラブルなストレージとコンピューティング リソースを提供するクラウドベースのデータ ウェアハウス プラットフォームです。このトピックでは、Reveal アプリケーションで Snowflake データ ソースに接続してデータを視覚化および分析する方法について説明します。

サーバー構成

インストール

手順 1 - Reveal Snowflake コネクタ パッケージをインストールします。

ASP.NET アプリケーションの場合、Snowflake サポートを有効にするには、別の NuGet パッケージをインストールする必要があります。

dotnet add package Reveal.Sdk.Data.Snowflake

手順 2 - アプリケーションに Snowflake データ ソースを登録します。

builder.Services.AddControllers().AddReveal( builder =>
{
builder.DataSources.RegisterSnowflake();
});

接続構成

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);
}
}
Important

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

認証

Snowflake の認証は、ユーザー名とパスワードの資格情報を使用してサーバー側で処理されます。すべての認証オプションの詳細については、「認証」トピックを参照してください。

public class AuthenticationProvider: IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVSnowflakeDataSource)
{
userCredential = new RVUsernamePasswordDataSourceCredential("username", "password");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}
}

クライアント側の実装

データ ソースの作成

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

const revealView = new $.ig.RevealView("#revealView");
revealView.onDataSourcesRequested = (callback) => {
// Add data source here
callback(new $.ig.RevealDataSources([], [], false));
};

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

revealView.onDataSourcesRequested = (callback) => {
const snowflakeDS = new $.ig.RVSnowflakeDataSource();
snowflakeDS.title = "Snowflake";
snowflakeDS.subtitle = "Data Source";

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

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

データ ソース項目の作成

データ ソース項目は、ユーザーが視覚化のために選択できる Snowflake データ ソース内の特定のデータセットを表します。クライアント側では、ID、タイトル、サブタイトルのみを指定する必要があります。

revealView.onDataSourcesRequested = (callback) => {
// Create the data source
const snowflakeDS = new $.ig.RVSnowflakeDataSource();
snowflakeDS.title = "My Snowflake Datasource";
snowflakeDS.subtitle = "Snowflake";

// Create a data source item
const snowflakeDSI = new $.ig.RVSnowflakeDataSourceItem(snowflakeDS);
snowflakeDSI.id = "MySnowflakeDataSourceItem";
snowflakeDSI.title = "My Snowflake Datasource Item";
snowflakeDSI.subtitle = "Snowflake";

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

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

その他のリソース

API リファレンス