翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
JDBC テーブルからの並列読み取り
AWS Glue がデータを並列に読み込むように、JDBC テーブルのプロパティを設定できます。特定のプロパティを設定するときに、データの論理パーティションに対して、並列 SQL クエリを実行するように AWS Glue に指示します。ハッシュフィールド、またはハッシュ式を設定して、パーティション分割を制御できます。データにアクセスするために使用される、並列読み込みの数を制御することもできます。
JDBC テーブルからの並列読み取りは、パフォーマンスを向上させる最適化手法です。この手法が適切であることを特定するプロセスの詳細については、「AWS 規範的ガイダンス」の「Best practices for performance tuning AWS Glue for Apache Spark jobs」ガイドにある「Reduce the amount of data scan」を参照してください。
並列読み込みするに、テーブル構造のパラメータフィールドにキーと値のペアを設定できます。テーブルのパラメータフィールドに値を設定するには、JSON 表記を使用します。テーブルのプロパティを編集する詳しい方法については、「テーブルの詳細の表示と管理」を参照してください。ETL (抽出、変換、ロード) メソッド create_dynamic_frame_from_options
および create_dynamic_frame_from_catalog
を呼び出すときに、並列読み込みを有効にすることもできます。これらのメソッドのオプションの指定の詳細については、「from_options」および「from_catalog」を参照してください。
JDBC テーブル、つまり、ほとんどの基本データが JDBC データストアのテーブルで、このメソッドを使用できます。Amazon Redshift および Amazon S3 テーブルの読み取り時は、これらのプロパティは無視されます。
- hashfield
-
データをパーティションに分割するために使用する JDBC テーブルの列の名前を
hashfield
に設定します。最良の結果を得るために、この列の値は、パーティション間にデータを分散する、値の均等分散である必要があります。この列には任意のデータ型を使用できます。AWS Glue は、この列によってパーティション分割されたデータの並列読み込みを実行する、重複しないクエリを生成します。たとえば、データが毎月均等に分散される場合、month
列を使用して、各月のデータを並行して読み込むことができます。'hashfield': 'month'
AWS Glue は、フィールド値をパーティション番号にハッシュするクエリを作成して、すべてのパーティションにクエリを並行して実行します。パーティションのテーブル読み込みに独自のクエリを使用するには、
hashfield
の代わりに hashexpression
を指定します。 - hashexpression
-
hashexpression
を、すべての番号を返す SQL 式 (JDBC データベースエンジンの文法に準拠する) に設定します。単純式は、テーブル内の任意の数値列の名前です。AWS Glue は、パーティションデータの WHERE
句で、hashexpression
を使用して並行して JDBC データを読み込む SQL クエリを生成します。たとえば、数値列
customerID
を使用して、パーティション分割されたデータを顧客番号を使用して読み込みます。'hashexpression': 'customerID'
AWS Glue がパーティション分割を制御するようにするには、
hashexpression
の代わりにhashfield
を指定します。 - hashpartitions
-
JDBC テーブルの並列読み込みの数を
hashpartitions
に設定します。このプロパティが設定されていない場合、デフォルト値は、7 です。たとえば、並列読み込みの数に
5
を設定すると、AWS Glue は 5 (以下) のクエリを使用して、データを読み込みます。'hashpartitions': '5'