メインコンテンツまでスキップ
バージョン: 2.1

ClickHouse データ ソース

概要

ClickHouse は、リアルタイム分析と大規模データ処理向けに設計された高性能な列指向データベース管理システムです。このトピックでは、Reveal アプリケーションで ClickHouse データ ソースに接続して、データを視覚化および分析する方法について説明します。

サーバーの構成

インストール

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

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

dotnet add package Reveal.Sdk.Data.ClickHouse

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

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

接続の構成

// Create a data source provider
public class DataSourceProvider : IRVDataSourceProvider
{
public async Task<RVDataSourceItem> ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
{
// Required: Update the underlying data source
await ChangeDataSourceAsync(userContext, dataSourceItem.DataSource);

if (dataSourceItem is RVClickHouseDataSourceItem clickHouseItem)
{
// Configure specific item properties as needed
if (clickHouseItem.Id == "clickhouse_sales_data")
{
clickHouseItem.Table = "sales_data";
}
}

return dataSourceItem;
}

public Task<RVDashboardDataSource> ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
if (dataSource is RVClickHouseDataSource clickHouseDS)
{
// Configure connection properties
clickHouseDS.Host = "your-clickhouse-host";
clickHouseDS.Port = 8443;
clickHouseDS.Database = "analytics";

// Optional properties
clickHouseDS.Protocol = "https";
clickHouseDS.Path = "/";
clickHouseDS.Timeout = 30;
clickHouseDS.SkipServerCertificateValidation = false;
}

return Task.FromResult(dataSource);
}
}
重要

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

認証

ClickHouse の認証は、ユーザー名とパスワードの資格情報を使用してサーバー側で処理されます。一般的な認証の詳細については、認証 トピックを参照してください。

public class AuthenticationProvider: IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVClickHouseDataSource)
{
// Use Username/Password
userCredential = new RVUsernamePasswordDataSourceCredential("your_username", "your_password");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}
}

クライアント側の実装

クライアント側では、データ ソースの ID、タイトル、サブタイトルなどの基本プロパティのみを指定する必要があります。実際の接続構成はサーバー上で行われます。

データ ソースの作成

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

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

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

revealView.onDataSourcesRequested = (callback) => {
const clickHouseDS = new RVClickHouseDataSource();
clickHouseDS.title = "My ClickHouse Datasource";
clickHouseDS.subtitle = "ClickHouse";

callback(new RevealDataSources([clickHouseDS], [], false));
};

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

データ ソース項目の作成

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

revealView.onDataSourcesRequested = (callback) => {
// Create the data source
const clickHouseDS = new RVClickHouseDataSource();
clickHouseDS.title = "My ClickHouse Datasource";
clickHouseDS.subtitle = "ClickHouse";

// Create a data source item
const clickHouseDSI = new RVClickHouseDataSourceItem(clickHouseDS);
clickHouseDSI.id = "clickhouse_sales_data";
clickHouseDSI.title = "My ClickHouse Datasource Item";
clickHouseDSI.subtitle = "ClickHouse";

callback(new RevealDataSources([clickHouseDS], [clickHouseDSI], false));
};

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

その他のリソース

API リファレンス