DataHubのセットアップ

このセクションでは、Things Cloud DataHubを設定する方法について説明します。

前提条件

Things Cloud DataHubを設定する前に、以下の前提条件を確認する必要があります。

Things Cloud DataHub マイクロサービスとウェブアプリケーションは、テナント上でアプリケーションとして利用可能である必要があります。ウェブアプリケーションは、Things Cloud DataHub の設定とオフロードパイプラインの管理のためのユーザーインターフェースを提供し、マイクロサービスは対応するバックエンド機能を提供します。ウェブアプリケーションの名前は DataHub、マイクロサービスは Datahub です。両アプリケーションは、次のいずれかの形式でデプロイされます。

  • サブスクライブされたアプリケーション: アプリケーションは、管理者またはスーパー テナントによってテナントにサブスクライブされています。
  • カスタムアプリケーション: アプリケーションがテナントに追加されています

エンタープライズテナント(親テナント)を持っている場合は、サブテナントがThings Cloud DataHubも利用できるように、サブテナントを両方のアプリケーションにサブスクライブできるようにすることもできます。

テナントへのアプリケーションの追加方法も含む、Things Cloudアプリケーションの一般的な管理の詳細については、アプリケーションの管理を参照してください。

次の手順を含むThings Cloudマイクロサービスの詳細については、マイクロサービスの管理およびマイクロサービスの監視を参照してください。

  • マイクロサービスをテナントに追加する方法
  • マイクロサービスのステータス、権限、およびログファイルを確認する方法

アプリケーションまたはマイクロサービスをテナントやサブテナントにサブスクライブする詳細については、テナントの管理を参照してください。

Things Cloud データのオフロードには、クラウドデータレイクサービスの接続設定と認証情報が必要です。オフロード中に、データはテナント名にちなんで名付けられたデータレイクフォルダに書き込まれます。

備考
このセクションでは、Dremio 経由でデータレイクにアクセスできるように設定する方法を説明します。詳細については、Dremio データソースのドキュメントを参照してください。データレイクに接続するターゲットテーブルは、Dremio 内で作成しないでください。これは Things Cloud DataHub によって行われます。

Things Cloud DataHubの権限とロールの定義

専用のパーミッションは、ユーザーがThings Cloud DataHubで実行できる範囲を定義します。 ユーザーのパーミッションの割り当てを容易にするために、パーミッションはロールにグループ化されています。Things Cloud DataHubアプリケーションの展開中に、対応するパーミッションとロールが作成されます。 同じ名前のロールがすでに存在する場合、新しいロールは作成されません。 同じことがパーミッションにも当てはまります。

必要なThings Cloud DataHub 権限がない場合、ログイン後に警告が表示されます。

重要
インベントリ/イベント/アラーム/メジャーメントコレクションをオフロードする場合、Things Cloud DataHubはThings Cloudプラットフォームで設定されているこれらのコレクションへのアクセス制限を組み込みません。 特に、デバイス グループへのアクセス権限を定義するインベントリロールは、オフロードプロセスに組み込まれません。 結果として、Things Cloud DataHub パーミッションを持つユーザーは、ユーザーがベース コレクションに対して持っているアクセス制限に関係なく、データ レイク内のすべてのデータにアクセスできます。

Things Cloud DataHub ロールとパーミッション

Things Cloud DataHubの管理者

管理者は主にデータレイクとDremioアカウントを設定し、監査ログの表示やシステムステータスの監視などの管理タスクを実行します。 管理者は、パイプラインの定義や開始など、パイプラインのオフロードを管理することもできます。

これらのタスクでは、デフォルトのロール DataHub Administrator が作成されます。 このロールのパーミッションは次のように定義されています。

タイプ READ ADMIN
DataHub administration Yes Yes
DataHub management Yes Yes
DataHub query Yes No

READ は特定のデータの閲覧を指し、ADMIN は指定されたデータの作成、更新、削除を指します。

Things Cloud DataHubマネージャー

マネージャーは、パイプラインの定義や開始など、パイプラインのオフロードを管理します。 これらのタスクでは、DataHub Manager というデフォルトのロールが作成されます。 このロールのパーミッションは次のように定義されています。

タイプ READ ADMIN
DataHub administration No No
DataHub management Yes Yes
DataHub query Yes No

Things Cloud DataHubユーザー

ユーザーは、データレイク内のデータに対してSQLクエリを実行します。 データレイクのクエリの詳細については、オフロードされたThings Cloudデータのクエリを参照してください。次の方法でクエリを実行するには、次の方法が使用できます。

  • Dremio UI: Dremioユーザーの設定で定義されたDremioアカウントを使用してDremio UIにログインし、そのUI内でクエリを実行します。
  • Dremio API: Dremio REST APIを使用してクエリを実行することもできます。Dremioユーザーの設定で定義されているDremioアカウントは、Dremio REST APIに対するリクエストの認証に使用されます。NTTドコモビジネス は、Dremio APIを直接呼び出すことは推奨されません。これらのAPIは予告なく削除または変更される可能性があります。
  • Things CloudDataHub proxy API: Things Cloud リクエストを Dremio API にプロキシする API を提供しています。Things Cloud ユーザーは、プロキシAPIを使用してクエリを実行するために、DATAHUB_READERロールが必要です。Dremioに対する認証はバックグラウンドで行われます。

DataHubリーダーロールの権限は以下のように定義されています。

タイプ READ ADMIN
DataHub administration No No
DataHub management No No
DataHub query Yes No

Things Cloud DataHubのロールとパーミッションの割り当て

DataHub Administrator、DataHub Manager、DataHub Reader のロールはテナントのそれぞれのユーザーに割り当てる必要があります。ユーザーへのロールの割り当てについては、パーミッションの管理を参照してください。Things Cloud DataHub構成設定を完了するには、DataHub Administratorロールを持つユーザーが少なくとも1人必要です。

備考
Things CloudユーザーがThings Cloud DataHubを操作するのに、事前定義されたロールを必ずしも使用する必要はありません。また、ユーザーが関連付けられている他のロールに該当するパーミッションを追加するなどの変更を加えることができます。 その場合、DataHubアプリケーションをユーザーのアプリケーションに追加する必要もあります。

初期構成のセットアップ

Things Cloud DataHubをセットアップするには、Dremio APIユーザーを構成し、データレイクにアクセスする必要があります。ナビゲータで、設定の下の初期構成を選択してこれらの設定を定義します。

必要条件
設定を定義するには管理権限が必要です。詳細については、Things Cloud DataHubの権限およびロールの定義を参照してください。

初期構成の定義

Dremio APIユーザー

データレイクの内容にアクセスするには、ODBC、JDBC、Dremio REST API、またはプロキシREST APIを使用できます。詳細については、オフロードされたThings Cloudデータのクエリを参照してください。プロキシREST APIは、Dremioへのプロキシとして機能するThings Cloud DataHubサーバーによって提供されます。プロキシAPIには、Things Cloud DataHubサーバーとDremioをやり取りするために Dremio ユーザーが必要です。この Dremio API ユーザーは、JDBC、ODBC、または Dremio REST API に基づくデータ レイクのクエリにも使用できます。

したがって、Dremio APIユーザーの初期構成で、そのDremio APIユーザーの名前とパスワードを設定する必要があります。

名前は2つの部分で構成され、最初の部分は固定されています。

  1. テナントIDとスラッシュ
  2. 文字で始まり、数字、英字、ダッシュ、または下線で構成される、最小長3の文字列

Dremio APIユーザーのパスワードには、少なくとも1つの英字と1つの数字を含む8文字以上が必要です。

備考
プロキシ REST API を使用する場合、すべてのクエリは同じ Dremio API ユーザーを使用して処理されます。クエリはクエリログにリストされます。したがって、ログにはプロキシAPIを利用したすべてのユーザーのすべてのクエリが表示されます。

フォローアップアプリケーションでは、データレイクにアクセスするために複数のDremioユーザーが必要になる場合があります。Dremioユーザーの追加の手順を利用して、追加のDremioユーザーを定義できます。

データレイク

環境の構成に応じて、データレイクプロバイダーは固定されている場合もあれば、さまざまなプロバイダーから選択できる場合もあります。データレイクプロバイダーごとに、対応する設定を指定して、使用するデータレイクを定義する必要があります。

必要条件
パーティション列推論の設定は有効にしないでください。これによりDremioが特定のフォルダー構造を想定することになり、Things Cloud DataHubで使用されるフォルダー構造と競合します。

現在、次のタイプのデータレイクがサポートされています。

Azure ストレージ

Azureストレージは、Microsoftが提供するクラウドストレージサービスのセットです。Things Cloud DataHubは、これらサービスの一部であるAzure Data Lake Storage Gen2をサポートしています。このデータレイクに対して次の設定を定義する必要があります。

設定 説明
Azure Storage account name Azureストレージアカウントの名前
Azure Storage container ストレージコンテナの名前。1~63文字で、英数字(英字と数字)およびダッシュ(-)を含めることができます。
Root path オフロードされたデータを保存するためのデータレイク内のルートパス。デフォルトのパス/では、データはストレージコンテナの最上位に保存されます。フォルダーが既に存在する場合は、サブフォルダーにデータを保存することもできます。たとえば、ストレージコンテナmyContainerとサブフォルダーmySubFolderの場合、ルートパスとして/myContainer/mySubFolderを使用します。このオプションは、コンテナが他のユーザーやアプリケーションによっても使用されている場合など、コンテナ内の他のデータをThings Cloud DataHubから非表示にする場合に特に便利です。
Azure Storage shared access key 「共有アクセスキー」が認証タイプとして使用される場合、認証に使用されるアクセスキー
Application ID 「Azure Active Directory」が認証タイプとして使用される場合に認証に使用されるアプリケーションID
OAuth 2.0 Token Endpoint 「Azure Active Directory」が認証タイプとして使用されている場合の認証エンドポイント
Client Secret 「Azure Active Directory」が認証タイプとして使用されている場合のクライアントシークレット

初期構成が保存されると他の設定は固定されますが、認証タイプおよび選択した認証タイプの値は後で変更できます。編集をクリックして新しい値を設定し、資格情報を保存をクリックして更新を保存するか、キャンセルをクリックして古い値を保持します。

必要条件
アカウントタイプはStorageV2である必要があり、対応するAzure Storageアカウントに対して階層名前空間機能が有効化されている必要があることに注意してください。パフォーマンス上の理由から、Blobアクセス階層ホットに設定することが推奨されます。また、IPホワイトリストが有効化されている場合、データレイクとThings Cloud DataHubが同じAzureリージョンに存在していると、Things Cloud DataHubはデータレイクにアクセスできない可能性があることにも注意してください。対応するドキュメントも参照してください。
Amazon S3

Amazon S3は、アマゾンウェブサービスが提供するオブジェクトストレージサービスです。このデータレイクに対して次の設定を定義する必要があります。

設定 説明
AWS access key アクセスキー
Access secret アクセスシークレット
Bucket name S3バケットの名前。1~63文字で、英数字およびダッシュ(-)を含むことができます。
Root path in bucket S3バケット内のルートパス。デフォルトのルートパスは/です。サブフォルダーを設定すると、バケット内の他のデータをThings Cloud DataHubから非表示にすることができます。

初期構成が保存されると他の設定は固定されますが、AWSアクセスキーおよびアクセスシークレットは後で変更できます。編集をクリックして新しい値を設定し、資格情報を保存をクリックして更新を保存するか、キャンセルをクリックして古い値を保持します。

必要条件
デフォルト設定のS3バケットは動作します。特定のセキュリティポリシーが適用されている場合は、https://docs.dremio.com/current/sonar/data-sources/object/s3に記載されている最小ポリシー要件を満たしていることを確認してください。

サーバーサイド暗号化はサポートされていますが、クライアント側の暗号化はサポートされていません。S3は3つのキー管理メカニズムを提供します。

SSE-S3: AES256キーがS3で生成され、データと一緒に保存されます。SSE-S3を有効にするには、下記のキーと値のペアを追加プロパティ欄に追加する必要があります。
名前: fs.s3a.server-side-encryption-algorithm
値: AES256

SSE-KMS: AES256キーはS3で生成され、AmazonのKey Management Service (KMS)によって提供される秘密キーで暗号化されます。キーはThings Cloud DataHubによって名前で参照される必要があります。SSE-KMSを有効にするには、下記のキーと値のペアを追加プロパティ欄に追加する必要があります。
名前: fs.s3a.server-side-encryption-algorithm
値: SSE-KMS

名前: fs.s3a.server-side-encryption.key
値: キーの名前(例: arn:aws:kms:eu-west-2:123456789012:key/071a86ff-8881-4ba0-9230-95af6d01ca01

SSE-C: クライアントは、データの暗号化と復号化に使用するBase64でエンコードされたAES-256キーを指定します。Things Cloud DataHubはこのオプションをサポートしていません。

NAS

NASは、Dremioクラスタに直接マウント(NFS、SMB)されたストレージシステムです。これはThings Cloud Edgeインストールでのみ利用可能です。このデータレイクに対して次の設定を定義する必要があります。

設定 説明
Mount path マウントパスは、コーディネータおよびエグゼキュータコンテナの両方のローカルLinuxファイルシステム内のパスを指します。デフォルトでは、Things Cloud Edgeのファイルシステムはコンテナ内の/datalakeにマウントされます。他のフォルダを使用する場合は、そのフォルダを両方のコンテナ(たとえばコンテナ内の/datalake)にマッピングする必要があります。

設定の保存

すべての設定が定義されたら、右側のアクションバーで保存をクリックします。保存処理中に、次の手順が自動的に実行されます。

  • Dremio APIユーザーが作成されます。ユーザーは管理権限ではなく、標準のDremioユーザー権限を持っています。
  • Dremioのデータレイク接続が、提供されたデータレイク設定を使って作成されます。Dremioではその接続は技術的にはソースと呼ばれますが、ここではオフロードデータを保存するためターゲットテーブルと呼びます。
  • Things Cloudのオペレーショナルストアに接続するDremioのソースが作成されます。そのソースはDremio APIユーザーには表示されません。
  • Dremioにスペースが作成されます。このスペースはビューなどのカスタムDremioエンティティを整理するために使用できます。スペースの名前はテナントIDに’Space’を連結したものであり、例えば、t12345Spaceとなります。

設定の編集

Dremio APIユーザーを編集するには、初期構成ページのDremio APIユーザーセクションで編集をクリックします。エディタでは、ユーザー名(これは固定)以外のすべてのユーザー詳細を編集できます。Dremioユーザーの編集にてすべてのユーザー詳細が説明されています。

Azure StorageまたはAmazon S3の認証情報を除き、データレイクの設定は編集できません。他の値を編集するには、既存の設定を削除し、新しい設定を定義する必要があります。オフロード設定を保持したい場合、事前にその設定をバックアップファイルにエクスポートし、設定を削除し、新しい設定を定義し、最後にバックアップファイルから設定をインポートする必要があります。インポート/エクスポートの詳細については、オフロード構成のインポート/エクスポートを参照してください。

設定の削除

設定を削除するには、アクションバーの削除をクリックします。削除中は、Dremio APIユーザーや追加で作成されたDremioユーザーを含む、保存時に作成されたすべてのDremioアーティファクトが削除されます。また、対応するDremioユーザーによって作成されたアーティファクト(ビューなど)も削除されます。すべてのオフロードパイプラインとその履歴も削除されます。アクティブなパイプラインは、現在のオフロードが完了すると削除されます。前述のように、インポート/エクスポート機能を使用してオフロード設定をバックアップできます。データレイクとその内容は削除されず、データレイクに接続しているDremioアーティファクトのみが削除されます。データレイクとその内容を削除するには、データレイクプロバイダーのツールを使用する必要があります。

Dremio ユーザーのセットアップ

Things Cloud DataHub の 初期設定 で、Dremio API ユーザーが設定されます。このユーザーはプロキシ REST API に必要です。これにより、Things Cloud DataHub を使用して Dremio と対話できるようになります。このユーザーは、JDBC、ODBC、または REST API を使用してアプリケーションで Dremio と直接対話するために使用することもできます。

ユースケースによっては、Dremio との対話に複数の Dremio ユーザーが必要になる場合があります。 この目的のために、Dremio ユーザーを追加することができます。

必要条件
Dremio ユーザーを設定するには管理者権限が必要です。詳細については Things Cloud DataHub の権限とロールの定義 のセクションを参照してください。

Dremio ユーザーの概要

ナビゲータの 設定 の下の Dremio ユーザー を選択すると、Things Cloud DataHub テナントの管理者によって作成されたすべての Dremio ユーザーの概要が表示されます。

Dremio ユーザーの一覧と対応するプロパティが表示されます。 各ユーザーのコンテキスト メニューには、ユーザーを編集または削除するためのアクションが用意されています。

初期設定がまだ完了していない場合、ユーザーは表示されません。 初期設定が完了している場合、一覧には初期設定で設定された Dremio API ユーザーが含まれます。

Dremio ユーザーのプロパティ

Username

username(ユーザー名)は必須の設定です。 これは一意の値である必要があります。つまり、他の Dremio ユーザーが同じユーザー名を持つことはありません。 これは、テナント ID とスラッシュ、および文字で始まり、数字、文字、ダッシュ、または下線で構成される最小3つの文字列で構成されます。 ユーザー名の例:t47110815/myUser

名前、姓、メールアドレス

Dremio ユーザーの名前、姓、メールアドレスはオプション設定となります。

データレイクとスペースのアクセス許可

Things Cloud DataHub の初期構成中に、Dremio のいわゆるソースが作成され、Dremio をデータレイクに接続します。 さらに、Dremio にはいわゆるスペースが作成され、そこでビューなどの Dremio アーティファクトを整理できます。

Dremio ユーザーには、データレイク ソースとスペースに対する追加の権限を割り当てることができます。 ユーザーにデータ レイク ソースに対するアクセス許可が割り当てられている場合、そのユーザーは他のユーザーに対して、そのソースへの許可の管理もできるようになります。 スペースの許可についても同様です。 データ レイクのアクセス許可とスペースのアクセス許可は互いに独立しています。 一方の権限の設定は、もう一方の権限の設定には影響しません。

対応する権限が割り当てられていると、ユーザーは、必ずしも Things Cloud DataHub に関連しているわけではない他の Dremio ユーザーに、データレイク ソースまたはスペースに対する異なる権限 (データ レイクにあるデータの読み取りやデータレイク内の表の作成など) を付与できます。

注意
機密情報が間違ったユーザーに公開されることを避けるために、他のユーザーにアクセス許可を付与する場合は、非常に慎重に行う必要があります。 特に、すべてのユーザーに権限を付与することはやめましょう。でなければ、Things Cloud インスタンスのすべての Dremio ユーザーがそれぞれデータ レイク ソースまたはスペースにアクセスできるようになってしまいます。そうならないように、システムは定期的に各テナントのリソースが他のテナントからアクセス可能かどうかを確認します。その場合、権限は自動的に制限されます。さらに、公開されている資産の名前の後に CDH_privilegeGrantedToPublicOn_ として定義されたタイプのアラームが生成されます。

たとえば、IoT データが Things Cloud DataHub を使用してデータ レイクにオフロードされているとしましょう。 さらに、別のビジネス ユニットに在籍のデータ サイエンティストが、データ レイクのコンテンツにアクセスしたいと考えています。 このデータ サイエンティスト用に Dremio アカウントを作成する必要があります。 次に、データレイク権限を持つThings Cloud DataHub によって作成された Dremio ユーザーが、データ レイク ソースに対する読み取りアクセスをデータ サイエンティストの Dremio アカウントに付与します。

備考
Dremio では、権限を privileges と呼びます。権限には、たとえば SELECT、ALTER、CREATE TABLE、DROP などがあります。 対応する権限を持つ Dremio ユーザーは、Dremio UI を介して他のユーザーに権限を付与できます。 UI で、データ レイクまたはスペースを参照し、コンテキスト メニューで 詳細を編集 を選択します。 エディターには、すべてのユーザーの権限の一覧が表示され、権限とユーザーを更新する選択肢が表示されます。または、Dremio SQL API を使用して権限を変更することもできます。

Dremio API ユーザーを含む各ユーザーに対して、データ レイクとスペースに対する manage grants 権限は、最初は設定されていません。

パスワード

パスワードは 8 文字以上で、少なくとも 1 つの英字と 1 つの数字を含む必要があります。

Dremio ユーザーの追加

Dremio ユーザーを追加するには、設定Dremio ユーザー を選択し、上部のメニュー バーの右側にある ユーザーを追加 をクリックします。 エディターで、対応する Dremio ユーザー プロパティを指定します。

保存 をクリックして設定を保存し、新しいユーザーを作成します。 ユーザーの作成をキャンセルするには、キャンセル をクリックします。

Dremio ユーザーの編集

設定Dremio ユーザー セクションにユーザーの一覧が表示されます。 ユーザーごとに、右側にコンテキスト メニューがあります。 ユーザーを編集するには、そのメニューから 編集 を選択します。 ユーザー名を除くすべての設定を変更できます。 必要に応じて、パスワードを変更 をクリックしてパスワードを変更することもできます。保存 をクリックして新しい設定を適用します。

Dremio ユーザーの削除

Dremio ユーザー一覧のコンテキスト メニューで 削除 を選択し、その後に表示される確認画面で 確認 をクリックして Dremio ユーザーを削除します。 初期設定で定義された Dremio API ユーザーは、この方法では削除できません。このユーザーは、初期構成 の設定が削除された場合にのみ削除できます。 後者の場合、この Things Cloud DataHub インスタンスに関連付けられているすべての Dremio ユーザーが削除されます。