

# テーブルデータへのアクセス
<a name="s3-tables-access"></a>

Amazon S3 テーブルバケットのテーブルにアクセスするには、複数の方法があります。AWS Glue Data Catalog を使用してテーブルを AWS 分析サービスと統合することも、Amazon S3 Tables Iceberg REST エンドポイントまたは Amazon S3 Tables Catalog for Apache Iceberg を使用してテーブルに直接アクセスすることもできます。使用するアクセス方法は、カタログの設定、ガバナンスモデル、アクセスコントロールのニーズによって異なります。これらのアクセス方法の概要を次に示します。

** AWS Glue Data Catalog の統合**  
これは、S3 テーブルバケット内のテーブルを操作するために推奨されるアクセス方法です。この統合により、AWS Glue Data Catalog を通じて複数の AWS 分析サービスにわたるデータ資産の統一されたビューが得られます。統合後、Athena や Amazon Redshift などのサービスを使用してテーブルをクエリできます。テーブルへのアクセスは、IAM アクセス許可を使用して管理されます。この統合を使用してテーブルにアクセスするには、使用する IAM ID が S3 Tables リソースとアクション、AWS Glue Data Catalog オブジェクト、および使用しているクエリエンジンへのアクセス件を持っている必要があります。詳細については、「[S3 Tables のアクセス管理](s3-tables-setting-up.md)」を参照してください。

**直接アクセス**  
AWS Partner Network (APN) カタログ実装、カスタムカタログ実装を使用する必要がある場合、または 1 つのテーブルバケット内のテーブルに対して基本的な読み取り/書き込みオペレーションのみを実行する必要がある場合は、この方法を使用します。テーブルへのアクセスは、IAM アクセス許可を使用して管理されます。テーブルにアクセスするには、テーブルリソースと S3 Tables アクションへのアクセス権が、ユーザーが使用する IAM ID に必要です。詳細については、「[S3 Tables のアクセス管理](s3-tables-setting-up.md)」を参照してください。

## AWS Glue Data Catalog 統合によるテーブルへのアクセス
<a name="table-access-gdc-integration"></a>

S3 テーブルバケットを AWS Glue Data Catalog と統合して、Amazon Athena、Amazon Redshift、Quick などの AWS 分析サービスからテーブルにアクセスできます。この統合により、AWS Glue Data Catalog にテーブルリソースが入力され、これらのリソースへのアクセスがフェデレーションされます。統合の詳細については、「[Amazon S3 Tables と AWS 分析サービスの統合](s3-tables-integrating-aws.md)」を参照してください。

次の AWS 分析サービスはこの統合を通じてテーブルにアクセスできます。
+ [Amazon Athena](s3-tables-integrating-athena.md)
+ [Amazon Redshift](s3-tables-integrating-redshift.md)
+ [Amazon EMR](s3-tables-integrating-emr.md)
+ [Quick](s3-tables-integrating-quicksight.md)
+ [Amazon Data Firehose](s3-tables-integrating-firehose.md)
+ [AWS Glue ETL](s3-tables-integrating-glue.md)
+ [SageMaker Unified Studio を使用した S3 Tables のクエリ](s3-tables-integrating-sagemaker.md)

### AWS Glue Iceberg REST エンドポイントを使用したテーブルへのアクセス
<a name="table-access-glue-irc"></a>

S3 テーブルバケットが AWS Glue Data Catalog と統合されると、AWS Glue Iceberg REST エンドポイントも使用して、Iceberg をサポートするサードパーティーのクエリエンジンから S3 テーブルに接続することもできます。詳細については、「[AWS Glue Iceberg REST エンドポイントを使用した Amazon S3 テーブルへのアクセス](s3-tables-integrating-glue-endpoint.md)」を参照してください。

Spark、PyIceberg、またはその他の Iceberg 互換クライアントからテーブルにアクセスする場合は、AWS Glue Iceberg REST エンドポイントを使用することをお勧めします。

次のクライアントは AWS Glue Iceberg REST エンドポイントを通じてテーブルに直接アクセスできます。
+ Spark、PyIceberg などの任意の Iceberg クライアント。

## テーブルへの直接アクセス
<a name="table-access-direct"></a>

 S3 Tables 管理オペレーションを Apache Iceberg 分析アプリケーションに橋渡しする方法を通じて、オープンソースクエリエンジンからテーブルに直接アクセスできます。直接アクセスには、Amazon S3 Tables Iceberg REST エンドポイントと Amazon S3 Tables Catalog for Apache Iceberg の 2 つの方法があります。REST エンドポイントをお勧めします。

セルフマネージドカタログ実装でテーブルにアクセスする場合、または 1 つのテーブルバケット内のテーブルに対して基本的な読み取り/書き込みオペレーションのみを実行する必要がある場合は、直接アクセスをお勧めします。その他のアクセスシナリオでは、AWS Glue Data Catalog 統合をお勧めします。

テーブルへの直接アクセスは、IAM アイデンティティベースのポリシーか、またはテーブルとテーブルバケットにアタッチされたリソースベースのポリシーを通じて管理されます。

### Amazon S3 Tables Iceberg REST エンドポイントを通じたテーブルへのアクセス
<a name="access-tables-irc"></a>

Amazon S3 Tables Iceberg REST エンドポイントを使用して、HTTP エンドポイントを通じて任意の Iceberg REST 互換クライアントからテーブルに直接アクセスできます。詳細については、「[Amazon S3 Tables Iceberg REST エンドポイントを使用したテーブルへのアクセス](s3-tables-integrating-open-source.md)」を参照してください。

次の AWS 分析サービスとクエリエンジンは、Amazon S3 Tables Iceberg REST エンドポイントを使用してテーブルに直接アクセスできます。

**サポートされているクエリエンジン**
+ Spark、PyIceberg などの任意の Iceberg クライアント。
+ [Amazon EMR](s3-tables-integrating-emr.md)
+ [AWS Glue ETL](s3-tables-integrating-glue.md)

### Amazon S3 Tables Catalog for Apache Iceberg を通じたテーブルへの直接アクセス
<a name="access-client-catalog"></a>

S3 Tables クライアントカタログを使用することで、Apache Spark のようなクエリエンジンからテーブルに直接アクセスすることもできます。詳細については、「[Amazon S3 Tables Catalog for Apache Iceberg を使用した Amazon S3 テーブルへのアクセス](s3-tables-client-catalog.md)」を参照してください。ただし S3 では、言語やエンジン固有のコードを必要とせず、より多くのアプリケーションをサポートしているため、直接アクセスには Amazon S3 Tables Iceberg REST エンドポイントを使用することをお勧めします。

次のクエリエンジンは、クライアントカタログを使用してテーブルに直接アクセスできます。
+ [Apache Spark](s3-tables-client-catalog.md#s3-tables-integrating-open-source-spark)