

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

# パーティション分割のヒント
<a name="partitioning-hints"></a>

パーティショニングヒントは、エグゼキュターノード間のデータ分散を制御します。複数のパーティショニングヒントを指定すると、複数のノードが論理プランに挿入されますが、左端のヒントはオプティマイザによって選択されます。

### COALESCE
<a name="coalesce-hint"></a>

パーティションの数を指定されたパーティションの数に減らします。

*パラメータ:* 数値 (必須) - 1～2147483647 の正の整数である必要があります

*例:*

```
-- Reduce to 5 partitions
SELECT /*+ COALESCE(5) */ employee_id, salary
FROM employees;
```

### REPARTITION
<a name="repartition-hint"></a>

指定されたパーティショニング式を使用して、指定された数のパーティションにデータを再パーティション化します。ラウンドロビン分散を使用します。

*パラメータ :*
+ 数値 (オプション) - パーティションの数。1～2147483647 の正の整数である必要があります
+ 列識別子 (オプション) - パーティション分割する列。これらの列は入力スキーマに存在する必要があります。
+ 両方を指定した場合、数値が最初に来る必要があります

*例:*

```
-- Repartition to 10 partitions
SELECT /*+ REPARTITION(10) */ *
FROM employees;

-- Repartition by column
SELECT /*+ REPARTITION(department) */ *
FROM employees;

-- Repartition to 8 partitions by department
SELECT /*+ REPARTITION(8, department) */ *
FROM employees;

-- Repartition by multiple columns
SELECT /*+ REPARTITION(8, department, location) */ *
FROM employees;
```

### REPARTITION\$1BY\$1RANGE
<a name="repartition-by-range-hint"></a>

指定された列で範囲パーティショニングを使用して、指定された数のパーティションにデータを再パーティション化します。

*パラメータ :*
+ 数値 (オプション) - パーティションの数。1～2147483647 の正の整数である必要があります
+ 列識別子 (オプション) - パーティション分割する列。これらの列は入力スキーマに存在する必要があります。
+ 両方を指定した場合、数値が最初に来る必要があります

*例:*

```
SELECT /*+ REPARTITION_BY_RANGE(10) */ *
FROM employees;

-- Repartition by range on age column
SELECT /*+ REPARTITION_BY_RANGE(age) */ *
FROM employees;

-- Repartition to 5 partitions by range on age
SELECT /*+ REPARTITION_BY_RANGE(5, age) */ *
FROM employees;

-- Repartition by range on multiple columns
SELECT /*+ REPARTITION_BY_RANGE(5, age, salary) */ *
FROM employees;
```

### バランス
<a name="rebalance-hint"></a>

クエリ結果の出力パーティションのバランスを再調整して、すべてのパーティションが適切なサイズになるようにします (小さすぎず、大きすぎません）。これはベストエフォートオペレーションです。スキューがある場合、スキューされたパーティションを AWS Clean Rooms 分割して大きくなりすぎないようにします。このヒントは、ファイルが小さすぎたり大きすぎたりしないように、クエリの結果をテーブルに書き込む必要がある場合に役立ちます。

*パラメータ :*
+ 数値 (オプション) - パーティションの数。1～2147483647 の正の整数である必要があります
+ 列識別子 (オプション) - 列は SELECT 出力リストに表示される必要があります
+ 両方を指定した場合、数値が最初に来る必要があります

*例:*

```
-- Rebalance to 10 partitions
SELECT /*+ REBALANCE(10) */ employee_id, name
FROM employees;

-- Rebalance by specific columns in output
SELECT /*+ REBALANCE(employee_id, name) */ employee_id, name
FROM employees;

-- Rebalance to 8 partitions by specific columns
SELECT /*+ REBALANCE(8, employee_id, name) */ employee_id, name, department
FROM employees;
```