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

Amazon Athena データ ソース

概要

Amazon Athena は、標準 SQL を使用して Amazon S3 内のデータを簡単に分析できるインタラクティブなクエリ サービスです。このトピックでは、Reveal アプリケーションで Amazon Athena データ ソースに接続して、データを視覚化および分析する方法について説明します。

サーバーの構成

インストール

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

dotnet add package Reveal.Sdk.Data.Amazon.Athena

次に、アプリケーションに Amazon Athena プロバイダーを登録します。

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

接続の構成

Amazon Athena のすべての接続プロパティは、データ ソース プロバイダーの実装を通じてサーバー側で構成されます。

// 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 RVAthenaDataSourceItem athenaItem)
{
// Configure specific item properties as needed
if (athenaItem.Id == "my-data-source-item")
{
athenaItem.Table = "your_table_name";
}
}

return dataSourceItem;
}

public Task<RVDashboardDataSource> ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
if (dataSource is RVAthenaDataSource athenaDS)
{
// Configure connection properties
athenaDS.Region = "your_region";
athenaDS.Database = "your_database_name";
}

return Task.FromResult(dataSource);
}
}
Important

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

認証

Amazon Athena の認証は、AWS 認証情報を使用してサーバー側で処理されます。認証オプションの詳細については、「認証」トピックを参照してください。

public class AuthenticationProvider: IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVS3DataSource)
{
userCredential = new RVAmazonWebServicesCredentials("key", "secret");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}
}

クライアント側の実装

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

データ ソースの作成

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

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

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

revealView.onDataSourcesRequested = (callback) => {
const athenaDS = new $.ig.RVAthenaDataSource();
athenaDS.title = "My Athena Data Source";
athenaDS.subtitle = "Amazon Athena";

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

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

データ ソース項目の作成

データ ソース項目は、ユーザーが表示形式のために選択できる Athena データ ソース内の特定のデータセットを表します。クライアント側では、ID、タイトル、サブタイトルを指定するだけです。

revealView.onDataSourcesRequested = (callback) => {
// Create the data source
const athenaDS = new $.ig.RVAthenaDataSource();
athenaDS.title = "My Athena Data Source";
athenaDS.subtitle = "Amazon Athena";

// Create a data source item
const athenaDSI = new $.ig.RVAthenaDataSourceItem(athenaDS);
athenaDSI.id = "my-data-source-item";
athenaDSI.title = "My Athena Data Source Item";
athenaDSI.subtitle = "Amazon Athena";

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

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

その他のリソース

API リファレンス