SQL 分析テンプレートを使用した設定済みテーブルのクエリ - AWS Clean Rooms

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

SQL 分析テンプレートを使用した設定済みテーブルのクエリ

この手順では、 AWS Clean Rooms コンソールで分析テンプレートを使用して、カスタム分析ルールで設定済みテーブルをクエリする方法を示します。

SQL 分析テンプレートを使用してカスタム分析ルールで設定済みテーブルをクエリするには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/cleanrooms で AWS Clean Rooms コンソールを開きます。

  2. 左のナビゲーションペインで、[コラボレーション] を選択します。

  3. [自身のメンバー能力] のステータスが [クエリの実行] になっているコラボレーションを選択します。

  4. 分析タブのテーブルセクションで、テーブルと関連する分析ルールタイプ (カスタム分析ルール) を表示します。

    注記

    想定したテーブルが表示されない場合は、次のいずれかの理由が考えられます。

  5. 分析セクションの「分析モード」で、「分析テンプレートの実行」を選択し、ドロップダウンリストから分析テンプレートを選択します。

  6. SQL 分析テンプレートを形成するパラメータは、 定義に自動的に入力されます。

  7. (Spark 分析エンジンのみ) サポートされているワーカータイプワーカー数を指定します。

    次の表を使用して、ユースケースに必要なタイプと数、またはワーカーを決定します。

    ワーカータイプ vCPU メモリ (GB) ストレージ (GB) ワーカー数 クリーンルーム処理ユニット (CRPU) の合計数
    CR.1X (デフォルト) 4 30 100 4 8
    128 256
    CR.4X 16 120 400 4 32
    32 256
    注記

    さまざまなワーカータイプとワーカー数には関連コストがあります。料金の詳細については、「 AWS Clean Rooms の料金」を参照してください。

  8. (Spark 分析エンジンのみ) サポートされている Spark プロパティを指定します。

    1. Spark プロパティの追加を選択します。

    2. Spark プロパティダイアログボックスで、ドロップダウンリストからプロパティ名を選択し、を入力します。

    次の表は、各プロパティの定義を示しています。

    Spark プロパティの詳細については、Apache Spark ドキュメントの「Spark Properties」を参照してください。

    プロパティ名 説明 デフォルト値

    spark.task.maxFailures

    ジョブが失敗するまでにタスクが失敗する連続回数を制御します。1 以上の値が必要です。許可される再試行回数は、この値から 1 を引いた値に等しくなります。試行が成功すると、失敗回数がリセットされます。さまざまなタスクにまたがる障害は、この制限に累積されません。

    4

    spark.sql.files.maxPartitionBytes

    Parquet、JSON、ORC などのファイルベースのソースから読み取るときに 1 つのパーティションにパックする最大バイト数を設定します。

    128MB

    spark.hadoop.fs.s3.maxRetries

    Amazon S3 ファイルオペレーションの再試行の最大回数を設定します。

    spark.network.timeout

    すべてのネットワークインタラクションのデフォルトのタイムアウトを設定します。設定されていない場合、次のタイムアウト設定を上書きします。

    • spark.storage.blockManagerHeartbeatTimeoutMs

    • spark.shuffle.io.connectionTimeout

    • spark.rpc.askTimeout

    • spark.rpc.lookupTimeout

    未定

    spark.rdd.compress

    spark.io.compression.codec を使用してシリアル化された RDD パーティションを圧縮するかどうかを指定します。Java および Scala の StorageLevel.MEMORY_ONLY_SER、または Python の StorageLevel.MEMORY_ONLY に適用されます。ストレージ領域を削減しますが、追加の CPU 処理時間が必要です。

    spark.shuffle.spill.compress

    spark.io.compression.codec を使用してシャッフルスピルデータを圧縮するかどうかを指定します。

    spark.sql.adaptive.advisoryPartitionSizeInBytes

    spark.sql.adaptive.enabled が true の場合、適応最適化中のシャッフルパーティションのターゲットサイズをバイト単位で設定します。小さなパーティションを結合するとき、または歪んだパーティションを分割するときのパーティションサイズを制御します。

    (spark.sql.adaptive.shuffle.targetPostShuffleInputSize の値)

    spark.sql.adaptive.autoBroadcastJoinThreshold

    結合中にワーカーノードにブロードキャストするための最大テーブルサイズをバイト単位で設定します。適応フレームワークにのみ適用されます。spark.sql.autoBroadcastJoinThreshold と同じデフォルト値を使用します。ブロードキャストを無効にするには、-1 に設定します。

    (none)

    spark.sql.adaptive.coalescePartitions.enabled

    spark.sql.adaptive.advisoryPartitionSizeInBytes に基づいて連続するシャッフルパーティションを結合してタスクサイズを最適化するかどうかを指定します。spark.sql.adaptive.enabled を true にする必要があります。

    spark.sql.adaptive.coalescePartitions.initialPartitionNum

    結合前のシャッフルパーティションの初期数を定義します。spark.sql.adaptive.enabled と spark.sql.adaptive.coalescePartitions.enabled の両方が true である必要があります。デフォルトは spark.sql.shuffle.partitions の値です。

    (none)

    spark.sql.adaptive.coalescePartitions.minPartitionSize

    アダプティブ最適化中にパーティションが小さすぎないように、結合されたシャッフルパーティションの最小サイズを設定します。

    1 MB

    spark.sql.adaptive.coalescePartitions.parallelismFirst

    パーティションの結合中に spark.sql.adaptive.advisoryPartitionSizeInBytes ではなく、クラスターの並列処理に基づいてパーティションサイズを計算するかどうかを指定します。並列処理を最大化するために、設定されたターゲットサイズよりも小さいパーティションサイズを生成します。これをビジー状態のクラスターで false に設定して、過剰な小さなタスクを防止することでリソース使用率を向上させることをお勧めします。

    spark.sql.adaptive.enabled

    正確なランタイム統計に基づいて、アダプティブクエリの実行を有効にして、クエリの実行中にクエリプランを再最適化するかどうかを指定します。

    spark.sql.adaptive.forceOptimizeSkewedJoin

    追加のシャッフルを導入した場合でも、OptimizeSkewedJoin を強制的に有効にするかどうかを指定します。

    spark.sql.adaptive.localShuffleReader.enabled

    ソートマージ結合からブロードキャストハッシュ結合に変換した後など、シャッフルパーティショニングが必要ない場合にローカルシャッフルリーダーを使用するかどうかを指定します。spark.sql.adaptive.enabled を true にする必要があります。

    spark.sql.adaptive.maxShuffledHashJoinLocalMapThreshold

    ローカルハッシュマップを構築するための最大パーティションサイズをバイト単位で設定します。次の場合に、シャッフルされたハッシュ結合をソートマージ結合よりも優先します。

    • この値は spark.sql.adaptive.advisoryPartitionSizeInBytes 以上

    • すべてのパーティションサイズがこの制限内です

    spark.sql.join.preferSortMergeJoin 設定を上書きします。

    0 バイト

    spark.sql.adaptive.optimizeSkewsInRebalancePartitions.enabled

    spark.sql.adaptive.advisoryPartitionSizeInBytes に基づいて小さなパーティションに分割することで、歪んだシャッフルパーティションを最適化するかどうかを指定します。spark.sql.adaptive.enabled を true にする必要があります。

    spark.sql.adaptive.rebalancePartitionsSmallPartitionFactor

    分割中にパーティションをマージするためのサイズしきい値係数を定義します。この係数より小さいパーティションに spark.sql.adaptive.advisoryPartitionSizeInBytes を掛けるとマージされます。

    0.2

    spark.sql.adaptive.skewJoin.enabled

    スキューされたパーティションを分割してオプションでレプリケートすることで、シャッフルされた結合でデータスキューを処理するかどうかを指定します。ソートマージおよびシャッフルされたハッシュ結合に適用されます。spark.sql.adaptive.enabled を true にする必要があります。

    spark.sql.adaptive.skewJoin.skewedPartitionFactor

    パーティションスキューを決定するサイズ係数を決定します。パーティションのサイズが両方を超えると、パーティションが歪みます。

    • この係数をパーティションサイズの中央値で乗算

    • spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes の値

    5

    spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes

    歪んだパーティションを識別するためのサイズしきい値をバイト単位で設定します。パーティションのサイズが両方を超えると、パーティションが歪みます。

    • このしきい値

    • パーティションサイズの中央値に spark.sql.adaptive.skewJoin.skewedPartitionFactor を掛けた値

    この値は spark.sql.adaptive.advisoryPartitionSizeInBytes よりも大きく設定することをお勧めします。

    256MB

    spark.sql.autoBroadcastJoinThreshold

    結合中にワーカーノードにブロードキャストするための最大テーブルサイズをバイト単位で設定します。ブロードキャストを無効にするには、-1 に設定します。

    10MB

    spark.sql.broadcastTimeout

    ブロードキャスト結合中のブロードキャストオペレーションのタイムアウト期間を秒単位で制御します。

    300 秒

    spark.sql.cbo.enabled

    計画統計の推定でコストベースの最適化 (CBO) を有効にするかどうかを指定します。

    spark.sql.cbo.joinReorder.dp.star.filter

    コストベースの結合列挙中にスター結合フィルターヒューリスティックを適用するかどうかを指定します。

    spark.sql.cbo.joinReorder.dp.threshold

    動的プログラミングアルゴリズムで許可される結合ノードの最大数を設定します。

    12

    spark.sql.cbo.joinReorder.enabled

    コストベースの最適化 (CBO) で結合順序変更を有効にするかどうかを指定します。

    spark.sql.cbo.planStats.enabled

    論理計画の生成中にカタログから行数と列統計を取得するかどうかを指定します。

    spark.sql.cbo.starSchemaDetection

    スタースキーマ検出に基づいて結合順序変更を有効にするかどうかを指定します。

    spark.sql.crossJoin.enabled

    spark.sql.files.maxPartitionNum

    ファイルベースのソース (Parquet、JSON、ORC) の分割ファイルパーティションのターゲット最大数を設定します。初期数がこの値を超えたときにパーティションを再スケーリングします。これは推奨されるターゲットであり、保証された制限ではありません。

    (none)

    spark.sql.files.maxRecordsPerFile

    1 つのファイルに書き込むレコードの最大数を設定します。ゼロまたは負の値に設定されている場合、制限は適用されません。

    0

    spark.sql.files.minPartitionNum

    ファイルベースのソース (Parquet、JSON、ORC) の分割ファイルパーティションのターゲット最小数を設定します。デフォルトは spark.sql.leafNodeDefaultParallelism です。これは推奨されるターゲットであり、保証された制限ではありません。

    (none)

    spark.sql.inMemoryColumnarStorage.batchSize

    列キャッシュのバッチサイズを制御します。サイズを大きくすると、メモリ使用率と圧縮が向上しますが、out-of-memoryエラーのリスクが高まります。

    10000

    spark.sql.inMemoryColumnarStorage.compressed

    データ統計に基づいて列の圧縮コーデックを自動的に選択するかどうかを指定します。

    spark.sql.inMemoryColumnarStorage.enableVectorizedReader

    列キャッシュのベクトル化された読み取りを有効にするかどうかを指定します。

    spark.sql.legacy.allowHashOnMapType

    マップタイプデータ構造でハッシュオペレーションを許可するかどうかを指定します。このレガシー設定は、古い Spark バージョンのマップタイプの処理との互換性を維持します。

    spark.sql.legacy.allowNegativeScaleOfDecimal

    10 進数型定義で負のスケール値を許可するかどうかを指定します。このレガシー設定は、負の 10 進スケールをサポートした古い Spark バージョンとの互換性を維持します。

    spark.sql.legacy.castComplexTypesToString.enabled

    複雑な型を文字列にキャストするためのレガシー動作を有効にするかどうかを指定します。古い Spark バージョンのタイプ変換ルールとの互換性を維持します。

    spark.sql.legacy.charVarcharAsString

    CHAR 型と VARCHAR 型を STRING 型として扱うかどうかを指定します。このレガシー設定は、古い Spark バージョンの文字列タイプの処理との互換性を提供します。

    spark.sql.legacy.createEmptyCollectionUsingStringType

    文字列タイプの要素を使用して空のコレクションを作成するかどうかを指定します。このレガシー設定は、古い Spark バージョンのコレクションの初期化動作との互換性を維持します。

    spark.sql.legacy.exponentLiteralAsDecimal.enabled

    指数リテラルを 10 進数型として解釈するかどうかを指定します。このレガシー設定は、古い Spark バージョンの数値リテラル処理との互換性を維持します。

    spark.sql.legacy.json.allowEmptyString.enabled

    JSON 処理で空の文字列を許可するかどうかを指定します。このレガシー設定は、古い Spark バージョンの JSON 解析動作との互換性を維持します。

    spark.sql.legacy.parquet.int96RebaseModelRead

    Parquet ファイルの読み取り時にレガシー INT96 タイムスタンプリベースモードを使用するかどうかを指定します。このレガシー設定は、古い Spark バージョンのタイムスタンプ処理との互換性を維持します。

    spark.sql.legacy.timeParserPolicy

    後方互換性のための解析動作を制御します。このレガシー設定は、文字列からタイムスタンプと日付を解析する方法を決定します。

    spark.sql.legacy.typeCoercion.datetimeToString.enabled

    日時値を文字列に変換するときに、レガシー型の強制動作を有効にするかどうかを指定します。古い Spark バージョンの日時変換ルールとの互換性を維持します。

    spark.sql.maxSinglePartitionBytes

    最大パーティションサイズをバイト単位で設定します。プランナーは、並列処理を改善するために、大きなパーティションのシャッフルオペレーションを導入します。

    128 メートル

    spark.sql.metadataCacheTTLSeconds

    メタデータキャッシュtime-to-live (TTL) を制御します。パーティションファイルメタデータとセッションカタログキャッシュに適用されます。以下が必要です。

    • 0 より大きい正の値

    • spark.sql.catalogImplementationを hive に設定

    • spark.sql.hive.filesourcePartitionFileCacheSize が 0 より大きい

    • spark.sql.hive.manageFilesourcePartitions を true に設定

    -1000 ミリ秒

    spark.sql.optimizer.collapseProjectAlwaysInline

    重複が発生した場合でも、隣接する射影とインライン式を折りたたむかどうかを指定します。

    spark.sql.optimizer.dynamicPartitionPruning.enabled

    結合キーとして使用されるパーティション列の述語を生成するかどうかを指定します。

    spark.sql.optimizer.enableCsvExpressionOptimization

    from_csv オペレーションから不要な列を削除して、SQL オプティマイザの CSV 式を最適化するかどうかを指定します。

    spark.sql.optimizer.enableJsonExpressionOptimization

    SQL オプティマイザで JSON 式を最適化するかどうかを次のように指定します。

    • from_json オペレーションから不要な列を削除する

    • from_json と to_json の組み合わせの簡素化

    • named_struct オペレーションの最適化

    spark.sql.optimizer.excludedRules

    無効にするオプティマイザルールを定義し、カンマ区切りのルール名で識別します。一部のルールは、正確性のために必要であるため、無効にすることはできません。オプティマイザは、正常に無効化されたルールを記録します。

    (none)

    spark.sql.optimizer.runtime.bloomFilter.applicationSideScanSizeThreshold

    アプリケーション側に Bloom フィルターを挿入するために必要な最小集約スキャンサイズをバイト単位で設定します。

    10GB

    spark.sql.optimizer.runtime.bloomFilter.creationSideThreshold

    作成側で Bloom フィルターを挿入するための最大サイズしきい値を定義します。

    10MB

    spark.sql.optimizer.runtime.bloomFilter.enabled

    シャッフル結合の片側に選択的述語がある場合に、シャッフルデータを減らすために Bloom フィルターを挿入するかどうかを指定します。

    spark.sql.optimizer.runtime.bloomFilter.expectedNumItems

    ランタイム Bloom フィルターで予想される項目のデフォルトの数を定義します。

    1000000

    spark.sql.optimizer.runtime.bloomFilter.maxNumBits

    ランタイム Bloom フィルターで許可される最大ビット数を設定します。

    67108864

    spark.sql.optimizer.runtime.bloomFilter.maxNumItems

    ランタイム Bloom フィルターで許可される予想項目の最大数を設定します。

    4000000

    spark.sql.optimizer.runtime.bloomFilter.number.threshold

    ドライバーのout-of-memoryエラーを防ぐために、クエリごとに許可される非 DPP ランタイムフィルターの最大数を制限します。

    10

    spark.sql.optimizer.runtime.bloomFilter.numBits

    ランタイム Bloom フィルターで使用されるデフォルトのビット数を定義します。

    8388608

    spark.sql.optimizer.runtime.rowlevelOperationGroupFilter.enabled

    行レベルのオペレーションでランタイムグループのフィルタリングを有効にするかどうかを指定します。データソースに以下を許可します。

    • データソースフィルターを使用してデータグループ全体 (ファイルやパーティションなど) を削除する

    • ランタイムクエリを実行して一致するレコードを特定する

    • 不要なグループを破棄して、高価な書き換えを避ける

    制限:

    • すべての式がデータソースフィルターに変換できるわけではありません

    • 一部の式では、Spark 評価 (サブクエリなど) が必要です。

    spark.sql.optimizer.runtimeFilter.semiJoinReduction.enabled

    シャッフル結合の片側に選択的述語がある場合に、シャッフルデータを減らすためにセミ結合を挿入するかどうかを指定します。

    spark.sql.parquet.aggregatePushdown

    最適化のために集計を Parquet にプッシュダウンするかどうかを指定します。以下をサポートします。

    • ブール型、整数型、浮動小数点型、日付型の MIN と MAX

    • すべてのデータ型の COUNT

    Parquet ファイルフッターに統計がない場合、例外をスローします。

    spark.sql.parquet.columnarReaderBatchSize

    Parquet ベクトル化された各リーダーバッチの行数を制御します。out-of-memoryエラーを防ぐために、パフォーマンスのオーバーヘッドとメモリ使用量のバランスを取る値を選択します。

    4096

    spark.sql.session.timeZone

    文字列リテラルのタイムスタンプと Java オブジェクト変換を処理するセッションタイムゾーンを定義します。以下を受け入れます。

    • 地域/都市形式のリージョンベースの IDs (アメリカ/Los_Angeles など)

    • (+/-)HH、(+/-)HH:mm、または (+/-)HH:mm:ss 形式のゾーンオフセット (-08 や +01:00 など)

    • +00:00 のエイリアスとしての UTC または Z

    (ローカルタイムゾーンの値)

    spark.sql.shuffle.partitions

    結合または集約中のデータシャッフルのパーティションのデフォルト数を設定します。同じチェックポイントの場所からの構造化ストリーミングクエリの再起動の間に変更することはできません。

    200

    spark.sql.shuffledHashJoinFactor

    シャッフルハッシュ結合の適格性を判断するために使用される乗算係数を定義します。シャッフルハッシュ結合は、スモールサイドのデータサイズにこの係数を掛けた値がラージサイドのデータサイズより小さい場合に選択されます。

    3

    spark.sql.sources.parallelPartitionDiscovery.threshold

    ファイルベースのソース (Parquet、JSON、ORC) を使用したドライバー側のファイルリストの最大パス数を設定します。パーティション検出中に超過すると、ファイルは別の Spark 分散ジョブを使用して一覧表示されます。

    32

    spark.sql.statistics.histogram.enabled

    推定精度を向上させるために、列統計の計算中に等高ヒストグラムを生成するかどうかを指定します。基本的な列統計に必要な範囲を超える追加のテーブルスキャンが必要です。

  9. [Run] (実行) を選択します。

    注記

    結果を受け取れるメンバーがクエリ結果の設定を行っていないと、クエリを実行できません。

  10. 引き続きパラメータを調整してクエリを再度実行するか、[+] ボタンを選択して新しいタブで新しいクエリを開始します。