幅広いシナリオをサポートするために、Hologres は Grand Unified Configuration(GUC)パラメーターを提供しています。このトピックでは、Hologres が提供する GUC パラメーターと、GUC パラメーターの使用方法について説明します。
制限事項
GUC パラメーターはシステムテーブルでは無効です。
GUC パラメーター
GUC パラメーター | 説明 | 備考 | 例 |
hg_enable_start_auto_analyze_worker | これらのパラメーターは、自動分析機能を有効にするかどうかを指定し、自動分析機能を設定するために使用されます。詳細については、「ANALYZE と自動分析」をご参照ください。 | Hologres V1.1 以降では、デフォルト値は | set hg_enable_start_auto_analyze_worker = on; |
hg_auto_check_table_changes_interval | デフォルト値: | set hg_auto_check_table_changes_interval = '10min'; | |
hg_auto_check_foreign_table_changes_interval | デフォルト値: | set hg_auto_check_foreign_table_changes_interval = '4h'; | |
hg_auto_analyze_max_sample_row_count | デフォルト値: | set hg_auto_analyze_max_sample_row_count = 16777216; | |
hg_fixed_api_modify_max_delay_interval | デフォルト値: | set hg_fixed_api_modify_max_delay_interval = '3day'; | |
hg_foreign_table_max_partition_limit | このパラメーターは、MaxCompute テーブルの各クエリでヒットできるパーティションの最大数を指定します。このパラメーターを使用して制限を調整できます。 |
| set hg_foreign_table_max_partition_limit = 128; |
hg_experimental_query_batch_size | これらのパラメーターは、Hologres での MaxCompute テーブルのクエリのパフォーマンスを最適化するために使用されます。詳細については、「Hologres での MaxCompute テーブルのクエリのパフォーマンスを最適化する」をご参照ください。 | デフォルト値: | set hg_experimental_query_batch_size = 4096; |
hg_foreign_table_split_size | デフォルト値: | set hg_foreign_table_split_size = 128; | |
hg_foreign_table_executor_max_dop | このパラメーターのデフォルト値は、Hologres インスタンスの CPU コア数と同じです。最大値は | set hg_foreign_table_executor_max_dop = 32; | |
hg_foreign_table_executor_dml_max_dop | デフォルト値: | set hg_foreign_table_executor_dml_max_dop = 16; | |
hg_enable_access_odps_orc_via_holo | Hologres V1.1 以降では、デフォルト値は | set hg_enable_access_odps_orc_via_holo = on; | |
hg_experimental_enable_result_cache | このパラメーターは、結果のキャッシュを有効にするかどうかを指定します。 | デフォルト値: | set hg_experimental_enable_result_cache = on; |
optimizer_join_order | これらのパラメーターは、内部テーブルのクエリのパフォーマンスを最適化するために使用されます。詳細については、「クエリのパフォーマンスを最適化する」をご参照ください。 | デフォルト値: | set optimizer_join_order = query; |
optimizer_force_multistage_agg | デフォルト値: | set optimizer_force_multistage_agg = on; | |
hg_anon_enable | このパラメーターは、データマスキング機能を有効にするかどうかを指定します。詳細については、「データをマスキングする」をご参照ください。 | デフォルト値: | alter database <db_name> set hg_anon_enable = on; |
hg_experimental_encryption_options | このパラメーターは、データの暗号化を有効にするかどうかを指定し、データの暗号化機能を設定するために使用されます。詳細については、「Hologres でデータを暗号化する」をご参照ください。 | デフォルト値: | alter database <db_name> set hg_experimental_encryption_options='AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,187xxxxxxxxxxxxx'; |
statement_timeout | このパラメーターは、アクティブなクエリのタイムアウト期間を指定します。詳細については、「クエリを管理する」をご参照ください。 | デフォルト値: | set statement_timeout = 5000 ; |
idle_in_transaction_session_timeout | このパラメーターは、アイドル状態のクエリのタイムアウト期間を指定します。詳細については、「クエリを管理する」をご参照ください。 | デフォルト値: | alter database db_name set idle_in_transaction_session_timeout=300000; |
idle_session_timeout | このパラメーターは、アイドル状態の接続が自動的に解放されるまでのタイムアウト期間を指定します。詳細については、「接続を管理する」をご参照ください。 | デフォルト値: | alter database <db_name> SET idle_session_timeout = 600000; |
hg_experimental_functions_use_pg_implementation | このパラメーターは、Hologres でサポートされているデータ型変換関数の時間範囲を指定します。デフォルトでは、 | Hologres V1.1.31 以降でこのパラメーターがサポートされています。データ型変換関数にこのパラメーターを設定すると、関数でサポートされる時間範囲は | set hg_experimental_functions_use_pg_implementation = 'to_char'; |
hg_experimental_approx_count_distinct_precision | このパラメーターは、APPROX_COUNT_DISTINCT 関数の誤差範囲を調整するために使用されます。詳細については、「APPROX_COUNT_DISTINCT」をご参照ください。 | デフォルト値: | set hg_experimental_approx_count_distinct_precision = 20; |
timezone | このパラメーターは、タイムゾーンを指定します。 | デフォルト値: | set timezone='GMT-8:00'; |
hg_experimental_enable_create_table_like_properties | このパラメーターは、テーブルスキーマと、プライマリキーやインデックスなどのテーブルプロパティの両方をコピーするかどうかを指定します。詳細については、「CREATE TABLE LIKE」をご参照ください。 | デフォルト値: | set hg_experimental_enable_create_table_like_properties=true; |
hg_experimental_affect_row_multiple_times_keep_first | これらのパラメーターは、既存のデータと同じプライマリキー値を持つ行を挿入する場合の | デフォルト値: | set hg_experimental_affect_row_multiple_times_keep_first = on; |
hg_experimental_affect_row_multiple_times_keep_last | set hg_experimental_affect_row_multiple_times_keep_last = on; | ||
hg_experimental_enable_read_replica | このパラメーターは、シャードレベルのレプリケーションを有効にするかどうかを指定します。詳細については、「Hologres インスタンスのシャードレベルレプリケーション」をご参照ください。 | デフォルト値: | set hg_experimental_enable_read_replica = on; |
hg_experimental_display_query_id | このパラメーターは、クライアントの NOTICE フィールドにクエリ ID を表示するかどうかを指定します。このパラメーターは、HoloWeb および PostgreSQL クライアントで有効です。Java Database Connectivity(JDBC)ドライバーを使用する場合は、 | デフォルト値: off。 | set hg_experimental_display_query_id =on; |
GUC パラメーターの値のクエリ
SHOW
文を実行して、GUC パラメーターの設定値またはデフォルト値をクエリできます。文の例:
自動分析機能が有効になっているかどうかを確認します。
show hg_enable_start_auto_analyze_worker;
MaxCompute テーブルの各クエリでヒットできるパーティションの最大数をクエリします。
show hg_foreign_table_max_partition_limit;
GUC パラメーターの設定
GUC パラメーターは、セッションレベルまたはデータベースレベルで設定できます。
ビジネスシナリオとパラメーターの特性に基づいて、データベースまたはセッションの GUC パラメーターを設定する必要があります。すべての GUC パラメーターをデータベースレベルで設定しないことをお勧めします。
セッションレベルでの GUC パラメーターの設定
SET
文を使用して、セッションレベルで GUC パラメーターを設定できます。セッションレベルで GUC パラメーターを設定した場合、パラメーターは現在のセッションでのみ有効になります。接続が閉じられると、パラメーター設定は無効になります。GUC パラメーターの後に SQL 文を使用することをお勧めします。構文:
set <GUC_name> = <values>;
GUC_name パラメーターは GUC パラメーターの名前を指定し、values パラメーターはこの GUC パラメーターの値を指定します。
例:
-- 自動分析機能を有効にします。 set hg_enable_start_auto_analyze_worker = on; -- MaxCompute テーブルの各クエリでヒットできるパーティションの最大数を 1024 に変更します。 set hg_foreign_table_max_partition_limit =1024;
データベースレベルでの GUC パラメーターの設定
alter database xx set xxx
文を使用して、データベースレベルで GUC パラメーターを設定できます。現在の接続を閉じて再接続すると、パラメーター設定は指定されたデータベースで有効になります。データベースを作成する場合は、データベースの GUC パラメーターを手動で設定する必要があります。構文:
alter database <db_name> set <GUC_name> = <values>;
db_name パラメーターはデータベースの名前を指定します。GUC_name パラメーターは GUC パラメーターの名前を指定し、values パラメーターは GUC パラメーターの値を指定します。
例:
-- データベースの自動分析機能を有効にします。 alter database testdb set hg_enable_start_auto_analyze_worker = on; -- データベースの MaxCompute テーブルの各クエリでヒットできるパーティションの最大数を 1,024 に変更します。 alter database testdb set hg_foreign_table_max_partition_limit =1024;