# AWS Glue データ カタログ

AWS Glue データ カタログに接続し、Qlik Open Lakehouse プロジェクトのターゲットとして使用します。

AWS Glue Data Catalog をターゲットとして使用すると、AWS の分析エコシステムと統合でき、Qlik Open Lakehouse が集中型メタデータ ストアと相互運用できるようになります。AWS Glue Data Catalog は統合メタデータ レイヤーとして機能し、Qlik が Iceberg テーブルを書き込み、追加の設定なしで Amazon Athena などの AWS ネイティブ サービスから即座にクエリできるようにします。Qlik によって書き込まれたデータは、サードパーティのツールでもレプリケーションなしで利用できます。

## 前提条件

AWS Glue Data Catalog の接続を作成するには、次が必要です。

* Amazon S3 バケット

* バケットへのアクセスにロール ベース認証を使用する場合、次が必要です。

  * 接続に使用するネットワーク統合へのアクセス許可。

  * ロール ARN。

* バケットへのアクセスにアクセス キー認証を使用する場合、次が必要です。

  * AWS アクセス キー ID。

  * AWS の秘密アクセス キー。

## AWS Glue Data Catalog 接続プロパティの設定

接続を設定するには、次のようにします。

1. [接続] で、[接続を作成] をクリックします。

2. 接続を作成するスペースを選択するか、[新しいデータ スペースを作成] を選択します。

3. [コネクタ名] リストから [AWS Glue Data Catalog] を選択するか、検索ボックスを使用します。

4. [作成] をクリックし、プロパティを設定します。

   * カタログの地域: リストから、カタログの地域を選択します。

   * S3 のターゲット バケット: バケット名を入力します。

5. 認証タイプを設定します。リストから、[ロールベース認証] または [アクセス キー認証] を選択し、選択した認証について以下の情報を入力します。

### ロールベース

* ネットワーク統合: リストからネットワーク統合を選択します。

* ARN ロール: AWS で作成した ARN ロールを入力します。

情報メモ「ガイダンスはこちらをクリック」のリンクをクリックすると、信頼されたエンティティ ポリシーへのアクセス方法とロール ARN の作成方法に関する以下の手順が表示されます。

#### AWS ロールの作成

AWS ロールの作成するには、次を行います。

1. AWS コンソールで、[IAM] に移動します。

2. [ロール] で [ロールを作成] をクリックします。

3. [信頼されるエンティティ タイプ] で、 [カスタム信頼ポリシー] を選択します。

4. Qlik Cloud の [AWS ロールの作成] ダイアログで、[信頼されるエンティティ] をコピーします。これは、統合のクラスターに割り当てられたエンティティです。AWS のコンソールに貼り付けます。

5. [ロール] をクリックし、上記で作成したロールを選択します。

6. [権限ポリシー] で、[権限の追加] をクリックし、[インライン ポリシーの作成] を選択します。

7. Qlik Cloud の [AWS ロールの作成] ダイアログで、以下のインライン ポリシーをコピーして AWS のコンソールに貼り付け、&lt;bucket\_name&gt; の値をバケットの場所に変更します。

   ```

   						{
   						"Version": "2012-10-17",
   						"Statement": [
   						{
   						"Effect": "Allow",
   						"Action": [
   						"glue:CreateTable",
   						"glue:UpdateTable",
   						"glue:DeleteTable",
   						"glue:BatchDeleteTable",
   						"glue:GetTable",
   						"glue:GetTables",
   						"glue:CreateDatabase",
   						"glue:UpdateDatabase",
   						"glue:GetDatabase",
   						"glue:GetDatabases",
   						"glue:GetUserDefinedFunction"
   						],
   						"Resource": [
   						"arn:aws:glue:us-east-2:*:catalog",
   						"arn:aws:glue:us-east-2:*:database/*", 
   						"arn:aws:glue:us-east-2:*:table/*/*"
   						]
   						},
   						{
   						"Effect": "Allow",
   						"Action": [
   						"s3:ListBucket",
   						"s3:GetBucketLocation"
   						],
   						"Resource": "arn:aws:s3:::<bucket_name>"
   							},
   							{
   							"Effect": "Allow",
   							"Action": [
   							"s3:PutObject",
   							"s3:DeleteObject",
   							"s3:DeleteObjectVersion",
   							"s3:GetObject",
   							"s3:GetObjectVersion"
   							],
   							"Resource": "arn:aws:s3:::<bucket_name>/*"
   								}
   								]
   								}
   ```

8. [ロール] ページの [概要] で、ARN をコピーします。

9. Qlik Cloud で、[AWS ロールの作成] ダイアログを閉じ、ARN の値を [ARN ロール] に貼り付けます。

### アクセス キー

* アクセス キー: 認証に使用する一意の AWS アクセス キー ID を入力します。

* 秘密キー: アクセス キーで使用する AWS 秘密アクセス キーを入力します。

情報メモ「ガイダンスはこちらをクリック」のリンクをクリックすると、ロール用のインライン ポリシーを作成するための以下の手順が表示されます。

#### ユーザー権限の定義

AWS でインライン ポリシーを作成するには、次を実行します。

1. AWS コンソールで、[IAM] に移動します。

2. [ポリシー] &gt; [ポリシーの作成] に移動します。

3. Qlik Cloud の [AWS ロールの作成] ダイアログで、ポリシーをコピーします。

4. [AWS] の Policyエディタで、ポリシーを貼り付け、&lt;bucket\_name&gt;パラメータをバケットの場所に変更します:

   ```

   						{
   						"Version": "2012-10-17",
   						"Statement": [
   						{
   						"Effect": "Allow",
   						"Action": [
   						"glue:CreateTable",
   						"glue:UpdateTable",
   						"glue:DeleteTable",
   						"glue:BatchDeleteTable",
   						"glue:GetTable",
   						"glue:GetTables",
   						"glue:CreateDatabase",
   						"glue:UpdateDatabase",
   						"glue:GetDatabase",
   						"glue:GetDatabases",
   						"glue:GetUserDefinedFunction"
   						],
   						"Resource": [
   						"arn:aws:glue:us-east-2:*:catalog",
   						"arn:aws:glue:us-east-2:*:database/*",
   						"arn:aws:glue:us-east-2:*:table/*/*"
   						]
   						},
   						{
   						"Effect": "Allow",
   						"Action": [
   						"s3:ListBucket",
   						"s3:GetBucketLocation"
   						],
   						"Resource": "arn:aws:s3:::<bucket_name>"
   						},
   						{
   						"Effect": "Allow",
   						"Action": [
   						"s3:PutObject",
   						"s3:DeleteObject",
   						"s3:DeleteObjectVersion",
   						"s3:GetObject",
   						"s3:GetObjectVersion"
   						],
   						"Resource": "arn:aws:s3:::<bucket_name>/*"
   						}
   						]
   						}				
   					
   ```

5. Qlik へのアクセスを許可するユーザーにポリシーを追加します。

[名前] に、接続の表示名を入力します。

## 対応しているデータ型

以下の表は、サポートされている Iceberg のソース データ型と、Qlik Talend Data Integration データ型への既定のマッピングを示しています。

| Qlik Talend Data Integration データ型 | Iceberg のデータ型 |
| --- | --- |
| BOOLEAN | BOOLEAN |
| BYTES | FIXED |
| DATE | DATE |
| TIME | TIME |
| DATETIME | TIMESTAMP |
| INT1 | INT |
| INT2 | INT |
| INT4 | INT |
| INT8 | LONG |
| NUMERIC | DECIMAL(precision, scale) |
| REAL4 | FLOAT |
| REAL8 | DOUBLE |
| UINT1 | INT |
| UINT2 | LONG |
| UINT4 | LONG |
| UINT8 | DECIMAL(20, 0) |
| STRING | STRING |
| WSTRING | STRING |
| BLOB | BINARY |
| NCLOB | STRING |
| CLOB | STRING |