

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Trino で Delta Lake クラスターを使用する
<a name="Deltacluster-trino"></a>

Amazon EMR リリース 6.9.0 以降では、Trino クラスターで Delta Lake を使用できます。

このチュートリアルでは、 を使用して Amazon EMR Trino クラスターの Delta Lake AWS CLI を操作します。

## 
<a name="Deltacluster-trino-create"></a>

**Delta Lake クラスターを作成する**

1. `delta_configurations.json` ファイルを作成し、選択したカタログの値を設定します。例えば、Hive メタストアをカタログとして使用する場合、ファイルに次のコードを記述する必要があります。

   ```
   [{"Classification":"delta-defaults",  
       "Properties":{"delta.enabled":"true"}},  
       {"Classification":"trino-connector-delta",  
       "Properties":{"hive.metastore.uri":"thrift://localhost:9083"}}]
   ```

   Glue Catalog AWS をストアとして使用する場合は、ファイルに次の内容が含まれている必要があります。

   ```
   [{"Classification":"delta-defaults",  
       "Properties":{"delta.enabled":"true"}},  
       {"Classification":"trino-connector-delta",  
       "Properties":{"hive.metastore":"glue"}}]
   ```

1. 次のように設定してクラスターを作成し、**example Amazon S3 bucket path** と **subnet ID** を実際の値に置き換えます。

   ```
   aws emr create-cluster 
       --release-label emr-6.9.0   
       --applications Name=Trino  
       --configurations file://delta_configurations.json   
       --region us-east-1  --name My_Spark_Delta_Cluster  
       --log-uri  s3://amzn-s3-demo-bucket/  
       --instance-type m5.xlarge  
       --instance-count 2   
       --service-role EMR_DefaultRole_V2  
       --ec2-attributes  InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0
   ```

## Delta Lake の Trino セッションを初期化します。
<a name="Deltainitialize-trino"></a>

Trino セッションを初期化するには、次のコマンドを実行します。

```
trino-cli --catalog delta
```

## Delta Lake テーブルに書き込む
<a name="Deltatrino-write-table"></a>

次の SQL コマンドを使用すると、テーブルを作成し、書き込みを行えます。

```
SHOW SCHEMAS;

CREATE TABLE default.delta_table (id  int, data varchar, category varchar) WITH 
( location =  's3://amzn-s3-demo-bucket/<prefix>');

INSERT INTO default.delta_table VALUES  (1,'a','c1'), (2,'b','c2'), (3,'c','c3');
```

## Delta Lake テーブルから読み取る
<a name="Deltatrino-read-table"></a>

次の SQL コマンドを使用すると、テーブルから読み取りを行えます。

```
SELECT * from default.delta_table;
```