すべてのプロダクト
Search
ドキュメントセンター

Hologres:デフォルト動作の変更

最終更新日:Jun 06, 2026

インスタンスをアップグレードする前に、各 Hologres バージョンにおけるデフォルト動作の変更点を確認してください。

説明

パラメーター名の変更は下位互換性のあるものです。元の名前は引き続き使用できますが、新しい名前の使用を推奨します。

V4.2

2024年6月

Hologres V4.2.3 以降、OSS および DLF Catalog ベースのレイクハウスソリューションにアクセスする際のデフォルトのネットワークプロトコルは、データ伝送のセキュリティを強化するため、HTTP から HTTPS に変更されます。

V4.1

2026 年 3 月

Hologres V4.1 では、カスタムアカウントのデフォルトのパスワード暗号化方式を MD5 から SCRAM-SHA-256 にアップグレードしました。既存のパスワードは自動的に更新されません。V4.1 以降で作成されたアカウント、またはパスワードが変更されたアカウントのみが SCRAM-SHA-256 を使用します。

クライアント

最小バージョン

HoloWeb

現在サポートされていません。エラー scram authentication not supported now, please use md5 password を返します。

PostgreSQL JDBC Driver

42.2.0

psql / libpq

PostgreSQL 10

psycopg2 (Python)

2.8

Npgsql (.NET)

3.3

node-postgres (Node.js)

8.0

PgBouncer

1.14

最小バージョン未満のクライアントでは、SCRAM-SHA-256 パスワードによる認証ができません。クライアントをアップグレードするか、MD5 に戻してください。

SET password_encryption = 'md5';
ALTER USER "BASIC$user" WITH PASSWORD 'password';

2026 年 2 月

  • Hologres V4.1.1 以降では、テーブルを読み取り専用に設定した後に REBUILD タスクが異常終了した場合、ALTER TABLE <table_name> SET RESET (ddl_options,write_options) を使用して書き込みアクセスを復元してください。このコマンドは、従来の ALTER TABLE <table_name> SET (readonly = false) コマンドに代わるものです。詳細については、「REBUILD」をご参照ください。

  • Hologres V4.1.9 以降では、全文転置インデックスのストレージ形式をアップグレードしました。このアップグレードは、これらのインデックスの通常の使用やバージョンアップグレードに影響しません。ただし、Hologres V4.1.9 以降から Hologres V4.0 にダウングレードする場合は、事前に新しいバージョンで作成された全文転置インデックスを削除し、ダウングレード後に手動で再構築する必要があります。

  • Hologres V4.1.11 以降では、KB レベルの超幅広列の読み書きなど、大規模でメモリ集約的なタスクにサーバーレスコンピューティングを使用すると、Hologres は自動的により多くのリソースを要求します。サーバーレスコンピューティングのリソース使用率が常に高い場合、タスクのキューイング時間が長くなる可能性があります。詳細については、「サーバーレスコンピューティングリソースの管理」をご参照ください。

2026 年 1 月

  • セキュリティとコンプライアンス

    • データマスキングの強化 (V2 スキーム): INSERT 操作時に、Hologres はデフォルトで基盤となるデータマスキングスキームを使用するようになりました。これにより、ソーステーブルからマスキングされたデータがターゲットテーブルに書き込まれ、ターゲットテーブルのマスキングルールの変更によって生じる可能性のあるデータ漏洩のリスクを軽減します。

  • データアクセスパスとモデリングの制約

    • MaxCompute ダイレクトリード: Hologres では、MaxCompute のダイレクトリードに、より安定した Common Table メカニズムをデフォルトで使用するようになりました。

    • セグメントキーの緩和: Nullable な列をセグメントキーとして使用できるようになり、データモデリングの柔軟性が向上しました。

  • DML とトランザクションの厳密な制約

    • 混合トランザクション操作の禁止: 明示的なトランザクションブロック内で、INSERT OVERWRITE または TRUNCATE ステートメントと標準 DML 操作を混在させることは厳密に禁止されています。この規則に違反すると、エラーが発生します。エラーの例:

      ERROR:  Mixing INSERT OVERWRITE or TRUNCATE with DML statements in a transaction is not supported.
    • 明示的なトランザクションにおける DELETE のパフォーマンス: トランザクションの整合性を保証し、デッドロックのリスクを軽減するため、明示的なトランザクションを有効にする (SET hg_experimental_enable_transaction = ON) と、テーブル全体に対する DELETE 操作の動作が変わります。ファイルレベルの物理削除の最適化はバイパスされ、行単位の論理削除として実行されるようになります。パフォーマンスへの潜在的な影響を評価することを推奨します。

  • メタデータ識別

    • 統計の最適化: table_info における Dynamic Table タイプの識別子が DYNAMIC TABLE に標準化されました。

  • 以下の機能がベータ版から一般提供 (GA) となり、本番環境で利用できるようになりました:

V4.0 (2025 年 9 月)

2025 年 11 月

  • 全文転置インデックスとリアルタイムデータ書き込み:

    • V4.0.8 より前: インデックス作成はデータ書き込みと同時に行われます。

    • V4.0.8 以降: インメモリインデックスは 1 秒ごとに更新され、効率的な書き込みとインデックスによる即時のデータアクセスを実現します。

  • Hologres V4.0.7 以降のダイナミックテーブルの動作:

    • ダイナミックテーブルの更新で仮想ウェアハウスリソースがサポートされるようになりました。

    • ダイナミックテーブル更新のデフォルトリソースが、V3.1、V3.2、および V4.0.1-4.0.6 と比較して変更されました。詳細については、「ダイナミックテーブルの更新リソースの設定」をご参照ください。

  • Hologres V4.0.15 以降のゲートウェイ接続制限: インスタンスの安定性を高めるため、仮想ウェアハウスインスタンスのゲートウェイ接続数が 8,000 以内に制限されました。

2025 年 9 月

  • 高性能クエリチャネル: Hologres V4.0 以降のインスタンスでは、MaxCompute 外部テーブルのクエリに Common Table をデフォルトで使用するようになりました。この新しい方式により、パフォーマンスが大幅に向上し、MaxCompute Delta Table および Append 2.0 Table をサポートします。詳細については、「Common Table」をご参照ください。

  • データの鮮度の向上: Hologres V4.0 以降、Hologres から MaxCompute のデータを直接クエリする場合、デフォルトのデータの鮮度は 1 分になります。データの鮮度を手動で変更するには、次のコマンドを使用します。

    -- データベースレベルで鮮度を変更
    ALTER DATABASE <database_name> set hg_create_table_snapshot_default_freshness_in_sec=xxx;
  • サーバーレスコンパクション: hg_serverless_computing_run_compaction_before_commit_bulk_load パラメーターがデフォルトで有効になり、サーバーレスバルクロード中にコンパクションが同期的に実行されるようになりました。これにより、インスタンスリソースへの影響が軽減されます。詳細については、「サーバーレスリソースへのコンパクションのオフロード」をご参照ください。

  • 柔軟な DLF テーブル形式: CREATE EXTERNAL TABLE を使用して Data Lake Formation (DLF) にテーブルを作成する場合、デフォルトのテーブル形式 (以前は ORC) が Paimon SDK によって動的に決定されるようになりました。詳細については、「CREATE EXTERNAL TABLE」をご参照ください。

  • PQE メモリ保護: PQE を使用して SQL ステートメントを実行する際のシングルノード メモリ保護が実装されました。このメカニズムにより、クエリがインスタンスの安定性に影響を与える可能性がある場合に OOM エラーが発生します。

  • ダイナミックテーブルのアダプティブ実行: Hologres V4.0 以降、フルリフレッシュモードのダイナミックテーブルでは、デフォルトでアダプティブ実行が使用されるようになりました。これにより、大規模なワークロードのピークリソース消費を削減し、ワークロードの安定性を向上させます。また、リソース消費をより正確に見積もることで、コストを節約できます。アダプティブ実行は、実行中に最適でないクエリプランを最適化し、不正確な統計情報による障害を防ぎます。

V3.2 (2025 年 7 月)

  • BranchOverwriteParameterTag などの非予約キーワード、および LambdaQualify などの予約キーワードが追加されました。キーワードの詳細については、「PostregSQL Key Words」をご参照ください。

  • Hologres V3.2 以降、共通テーブル式 (CTE) の適応型最適化がサポートされるようになりました。CTE のマテリアライゼーション戦略は、optimizer_cte_inlininghg_cte_strategy の 2 つの GUC パラメーターによって決定されます。これらのパラメーターは互いに独立しており、設定の順序に関係なく個別に設定できます。動作は次のとおりです。

    • optimizer_cte_inlining = off の場合、hg_cte_strategy の設定に関係なく、CTE は強制的に再利用されます。

    • optimizer_cte_inlining = on の場合、CTE は強制的にインライン化されなくなります。CTE のポリシーは hg_cte_strategy によって決定されます。

      • hg_cte_strategy = auto (デフォルト) の場合、クエリオプティマイザ (QO) は CTE の複雑さなどの要因に基づいて、インライン化するか再利用するかを自動的に選択します。

      • hg_cte_strategy = inlining の場合、CTE は強制的にインライン化されます。

      • hg_cte_strategy = reuse の場合、CTE は強制的に再利用されます。

  • Hologres V3.2 以降、Fast Rows がデフォルトで有効になりました。テーブルに統計情報がない場合、オプティマイザは自動的に実際の行数を取得して、より適切な実行計画を生成します。

    この動作はアップグレード時に自動的に適用され、設定は不要です。詳細については、「ANALYZE と AUTO ANALYZE」をご参照ください。

V3.1 (2025年5月)

  • 動的テーブル:

    • 構文

      Hologres V3.1 以降、動的テーブルはより簡潔な新しい構文を使用します。V3.0 で作成された動的テーブルを V3.1 にアップグレードした後、全量データ更新を使用するテーブルでは、 ALTER 操作のみ実行できます。新しいテーブルを作成するには、V3.1 の新しい構文を使用する必要があります。増分データ更新を使用するテーブルの場合は、新しい構文を使用してテーブルを再作成する必要があります。詳細については、「動的テーブルの作成」をご参照ください。

    • リソース使用量

      • リソースの更新

        Hologres V3.1 で作成された動的テーブルは、デフォルトでサーバーレスコンピューティングリソースを使用してタスクを実行します。現在のインスタンスでサーバーレスコンピューティングが有効になっていない場合、自動的にインスタンスリソースにフォールバックします。 Hologres V3.0 で作成されたテーブルは、テーブル作成時に指定されたリソースを引き続き使用します。詳細については、「動的テーブルの作成」をご参照ください。

      • インスタンスリソースを使用したテーブルの作成

        • 新しい構文 (Hologres V3.1 および V3.2):ベーステーブルと動的テーブルのテーブルグループ、それぞれのプライマリ仮想ウェアハウスを使用します。

        • 古い構文 (Hologres V3.0) および新しい構文 (Hologres V4.1):動的テーブルのテーブルグループのプライマリ仮想ウェアハウスを使用します。

    • 接続数

      新しい構文では、動的テーブルごとに 1 つの追加接続を維持します。インスタンスの接続使用率が高く、数百の動的テーブルがある場合は、問題を回避するためにアイドル接続を削除してください。

    • ベーステーブルから増分データを読み取る方法

      Hologres V3.1 以降、ストリーム方式を使用してベーステーブルのデータ変更を識別します。バイナリロギングと比較して、ストリーム方式はより高いパフォーマンスとコスト効率を実現します。インスタンスを V3.1 にアップグレードすると、デフォルトでストリーム方式が使用されるようになります。V3.0 でテーブルにバイナリロギングが有効になっている場合は、余分なストレージコストが発生しないように、速やかにバイナリロギングを無効にしてください。詳細については、「動的テーブル」をご参照ください。

  • クエリキュー機能はベータ段階を完了し、本番環境で使用できるようになりました。詳細については、「クエリキュー」をご参照ください。

  • TRUNCATE は DDL から DML 文に変更され、FE ノードの負荷を軽減します。DDL の動作に戻すには、 hg_enable_truncate_as_dml GUC パラメーターを無効にしてください。ただし、バイナリロギングが有効なテーブルで TRUNCATE 操作を実行する場合は、セッションレベルでバイナリロギングを無効にする必要があります。詳細については、「TRUNCATE」をご参照ください。

  • プライマリキーを持つテーブルに COPY を使用してデータをインポートする場合、GUC パラメーター hg_experimental_copy_enable_on_conflict はデフォルトで有効になっています。これにより、プライマリキーを持つテーブルにデータをインポートする際にデータ更新ポリシーを設定できます。詳細については、「COPY」をご参照ください。

  • hg_insert_overwrite 機能を使用する場合、SQL ステートメント (標準の SELECT 文) で指定された列数とそのデータ型は、ターゲットテーブル (Hologres 内部テーブル) のものと厳密に一致する必要があります。そうでない場合、error: table "hg_alias" has x columns available but x columns specified または error: column xx is of type xxx but expression is of type xxx のエラーメッセージが表示されます。詳細については、「INSERT OVERWRITE」をご参照ください。

  • システムテーブル hg_table_storage_status が更新されました。Hologres V3.1 以降、システムテーブルにはメモリに保存されているテーブルデータ (メモリテーブル) が含まれなくなりました。代わりに、テーブルの実際の物理ストレージのみを反映します。メモリテーブルのメカニズムの詳細については、「INSERT」をご参照ください。

  • 非予約キーワードとしてasynclogicalpurgerecoverrebuildresume、および suspend が追加されました。「PostgreSQL キーワード」をご参照ください。

V3.0

2025 年 4 月

Hologres V3.0.33 以降、インスタンスで利用可能なサーバーレスコンピューティングリソースの上限が、インスタンスの専用コンピューティングリソースの 3 倍から 5 倍に引き上げられました。上限は 2,048 CU を超えることはできません。詳細については、「サーバーレスコンピューティングの使用」をご参照ください。

2025 年 2 月

  • Hologres V3.0.23 以降、必要な権限を持たないユーザーは、データベース、スキーマ、またはテーブルメタデータをクエリできなくなりました。BI ツールやその他のツールからの権限のないアクセスでは、権限エラーが返されます。

  • Hologres V3.0 以降、LIMIT -1 を含む SQL 文はサポートされなくなりました。LIMIT -1 を含む SQL 文を実行すると、ERROR: LIMIT must not be negative が報告されます。

  • Hologres V3.0.19 以降、データセキュリティを強化するため、データマスキングが有効になっているデータベースでは、デフォルトでバイナリログを消費できません。バイナリログを消費すると、Replication does not support hologres anon now, could choose to turn off hg_anon_enable for current user というエラーメッセージが表示されます。ユーザーがバイナリログを消費できるようにするには、次のいずれかのステートメントを実行して、そのユーザーのデータマスキングを無効にする必要があります。

    重要

    システムは、hg_anon_enable の設定にのみ基づいて、バイナリログの消費が許可されているかどうかをチェックします。unmasked などのデータマスキングルールを設定しても、バイナリログの消費を有効にすることはできません。

    -- ユーザーのデータマスキングを無効にします。
    ALTER ROLE "<user>" SET hg_anon_enable = OFF;
    
    -- 特定のデータベースでユーザーのデータマスキングを無効にします。
    ALTER ROLE "<user>" IN DATABASE <database> SET hg_anon_enable = OFF;

2024 年 11 月

固定実行計画におけるフィルター条件の組み合わせ数の上限は 500,000 です。この制限を超えると、実行は Hologres Query Engine (HQE) にデグレードされます。フィルター条件の値の説明:

WHERE (pk1 = 1 AND pk2 = 1) OR (pk1 = 2 AND pk2 = 2) OR (pk1 = 3 AND pk2 = 3)-- この例の組み合わせ数は 3 です。
    
WHERE pk1 IN (1, 2, 3) AND pk2 IN (1,2,3)-- この例の組み合わせ数は 9 です。計算式: 3 × 3 = 9。

2024 年 9 月

  • SQL ヒント機能のパブリックプレビューが完了し、本番環境で使用できるようになりました。デフォルトでは、この機能は有効になっています。

  • メタデータウェアハウスでは、COPY 操作では 1 つのレコードではなく 2 つのレコードが生成されます。詳細については、「COPY」をご参照ください。

  • Hologres V3.0.10 以降、仮想ウェアハウスインスタンスの各仮想ウェアハウスのコンピューティングユニット (CU) の最大数が 512 から 1024 に増加しました。

V2.2

2025 年 2 月

  • Hologres V2.2.38 以降、データセキュリティを強化するため、データマスキングが有効になっているデータベースでは、デフォルトでバイナリログを消費できなくなりました。バイナリログを消費しようとすると、Replication does not support hologres anon now, could choose to turn off hg_anon_enable for current user エラーメッセージが返されます。ユーザーがバイナリログを消費できるようにするには、次のいずれかのステートメントを実行し、該当ユーザーのデータマスキングを無効にする必要があります。

    重要

    システムは、hg_anon_enable の設定のみに基づいて、バイナリログの消費が許可されているかどうかを確認します。unmasked などのデータマスキングルールを設定しても、バイナリログの消費を有効にすることはできません。

    -- ユーザーのデータマスキングを無効にします。
    ALTER ROLE "<user>" SET hg_anon_enable = OFF;
    
    -- 特定のデータベースでユーザーのデータマスキングを無効にします。
    ALTER ROLE "<user>" IN DATABASE <database> SET hg_anon_enable = OFF;

2024 年 11 月

  • Hologres V2.2.17 以降、OOM のリスクを軽減するため、実行計画のメモリは 4 GB (デフォルト) に制限されています。"ORCA failed to produce a plan : Used memory size xxx MB exceeds maximum size 4096 MB" エラーが発生した場合は、SQL ステートメントを簡素化するか、制限を調整してください。

    -- 制限を調整またはキャンセルします。パラメーターを 0 に設定すると、制限がキャンセルされます。
    ALTER DATABASE <database_name> SET hg_experimental_mp_allocated_size_limit_in_mb = 0;
  • Hologres V2.2.25 以降、仮想ウェアハウスをスケールインする際、各ワーカーに割り当てられる読み取り専用シャードの数は 128 を超えることができません。これにより、OOM などの問題が頻繁に発生することを防ぎます。スケールイン後にワーカーに割り当てられるシャード数が 128 を超える場合、"The follower shard count per worker:xx should be less than or equal to the max follower shard" エラーが返されます。この場合、仮想ウェアハウスは元の仕様のまま維持されます。次の SQL ステートメントを実行すると、現在のデータベースにおいて指定された仮想ウェアハウスのワーカーに割り当てられている読み取り専用シャードの数を確認できます。インスタンスに複数のデータベースがある場合は、各データベースの読み取り専用シャード数を合計してください。

    -- 現在のデータベースで、init_warehouse のワーカーに割り当てられている読み取り専用シャードの数をクエリします。
    SELECT
        w.worker_id,
        count(*) AS cnt
    FROM
        hologres.hg_warehouse_table_groups t,
        hologres.hg_worker_info w
    WHERE
        t.warehouse_id = w.warehouse_id
        AND w.table_group_name = t.tablegroup_name
        AND t.leader = FALSE
        AND w.warehouse_name = 'init_warehouse'
    GROUP BY
        w.worker_id;

V2.2 (2024年7月)

Java データベースコネクティビティ (JDBC) を使用して Hologres バイナリログを消費する場合、ワーカーで利用可能な walsender の最大数が 1,000 から 600 に減少しました。walsender の数は、スロットの数によって計算されます。詳細については、「JDBC経由でのバイナリログの消費」をご参照ください。Hologres バイナリログを消費する際は、jdbc_fixed モードを使用することを推奨します。JDBC モードでのログ消費と比較して、jdbc_fixed モードではコネクションを占有せず、walsender の数の制限も受けません。jdbc_fixed モードの詳細については、「Hologres: リアルタイムデータウェアハウス」をご参照ください。

V2.2 (2024年6月)

Hologres V2.2 以降、スロークエリログを収集する基盤機能が自動的にアップグレードされ、Hologres でスロークエリに関するより多くの情報をログに記録できるようになります。これにより、ビジネス担当者は Hologres インスタンスで実行されるクエリのステータスに基づいて、きめ細かい管理が可能になります。スロークエリログの詳細については、「スロークエリログの取得と分析」をご参照ください。スロークエリログの収集は、以下の点でアップグレードされています:

  • 無効な構文、プラン解析の失敗、権限不足などの原因で失敗したクエリがログに記録されます。これらのクエリは、Hologres V2.2 より前のバージョンではログに記録されませんでした。失敗したクエリを管理するには、SQL 診断機能の使用を推奨します。

  • トランザクションに BEGIN; DROP TABLE xxx; COMMIT; のような複数のデータ定義言語 (DDL) ステートメントが含まれている場合、トランザクション全体が 1 つのクエリレコードとしてスロークエリログに記録されます。ただし、クエリ QPS メトリックでは、トランザクションは複数のステートメントとしてカウントされます。例:

    -- トランザクション内で複数のステートメントを含むクエリを開始します。
    BEGIN;
    DROP TABLE xxx;-- 実行に成功します。
    CREATE TABLE xxx -- 実行に失敗します。
    ROLLBACK;
    • 次のサンプルコードは、スロークエリログ内の結果を示しています:

      query_id | status  | Query
      ---------|---------|------------
      xxxx     |  FAILED |begin;drop table ;create table;rollback;
    • 次のサンプルコードは、モニタリングシステム内の結果を示しています:

      Query QPS: 4 records
      Failed Query QPS: 1 record

V2.2 (2024年5月)

  • Hologres V2.2 以降、hg_dump_script によって返されるテーブルプロパティは、CALL 構文ではなく WITH 構文で表示されます。これにより、CREATE TABLE 文の利便性と可読性が向上します。詳細については、「概要」の「テーブルスキーマのクエリ」セクションをご参照ください。

  • Hologres V2.2.7 以降、デフォルト値が 1 秒から 100 ミリ秒に変更されました。変更後、スロークエリログは、1 秒ではなく 100 ミリ秒を超える SQL 文を記録します。SQL 文には、INSERT、SELECT、UPDATE、DELETE 文が含まれます。詳細については、「スロークエリログの取得と分析」をご参照ください。

  • Hologres V2.2.9 以降、固定プランを使用したキーと値のペアのポイントクエリによって返される結果は、WHERE 句のプライマリキーに基づいて順序付けされません。

    固定プランを使用したポイントクエリの例

    CREATE TABLE test_t (id INT PRIMARY key, col INT);
    INSERT INTO test_t VALUES (1,1),(2,2),(3,3);
    
    -- Hologres V2.2.9 より前のバージョンでは、返される結果は WHERE 句のプライマリキー (id) に基づいて順序付けされます。
    SELECT * FROM test_t WHERE id IN (1,2,3);
    id | col 
    ----+----- 
    1 | 1 
    2 | 2 
    3 | 3
    
    -- Hologres V2.2.9 以降では、返される結果は WHERE 句のプライマリキー (id) に基づいて順序付けされません。各クエリで返される結果も、異なる順序で表示される場合があります。
    SELECT * FROM test_t WHERE id IN (1,2,3);
    id | col 
    ----+----- 
    3 | 3 
    1 | 1 
    2 | 2

V2.2 (2024年4月)

  • Hologres V2.2 以降、Hologresは、デフォルトでサービスリンクロールを使用して MaxCompute 外部テーブルにアクセスします。V2.2 以降を購入またはアップグレードする際は、サービスリンクロールを作成し、必要な権限を付与してください。サービスリンクロールにより、承認されたサービス間のアクセスが可能になり、誤操作によるリスクを防ぎます。詳細については、「Hologres サービスリンクロール」をご参照ください。

  • Hologres V2.2 以降では、デフォルトのオプティマイザポリシーが exhaustive から exhaustive2 に変更され、ほとんどの場合、パフォーマンスが 20%~40% 向上します。left outer join クエリの場合、プランが最適ではなく、メモリ使用量が増加する可能性があります。元に戻すには、set optimizer_join_order = 'exhaustive'; を実行して exhaustive に切り替えます。

  • Hologres V2.2 以降、固定プランを使用するプロセスの Engine Type の値が、スロークエリログで SDK から FixedQE に変更されました。これにより、スロークエリログとメトリクスでの名前の一貫性が確保されます。

  • Hologres V2.2 以降、FE ノードへの接続数は 128 から 256 に増加しました。総接続数は2倍になりました。詳細については、「インスタンス管理」をご参照ください。

  • INSERT OVERWRITE および BSI 関数が一般提供になりました。

  • Hologres V2.2 以降、SELECT hg_dump_script() 文は、テーブル作成プロパティを CALL 構文ではなく WITH 構文で返すようになりました。この変更により、テーブル作成の利便性と可読性が向上します。詳細については、「テーブルスキーマの表示」をご参照ください。

V2.1 (2024年6月)

Hologres V2.1.27 以降、VVR 8.0.7 以降を使用する Realtime Compute for Apache Flink で Hologres バイナリログを消費する場合、JDBC モードは自動的に jdbc_fixed モードにアップグレードされます。JDBC モードのクエリと比較して、jdbc_fixed モードのクエリは接続を消費せず、クエリパフォーマンスは walsenders の最大数によって制限されません。jdbc_fixed モードの詳細については、「Hologres:リアルタイムデータウェアハウス」をご参照ください。JDBC モードの詳細については、「JDBC 経由での Binlog の消費」をご参照ください。

V2.1 (2024年3月)

Realtime Compute for Apache Flink を使用して Hologres バイナリログを消費する場合、HoloHub モードはサポートされなくなり、'sdkMode'='holohub' 設定は無効になります。JDBC モードのみがサポートされます。JDBC モードは HoloHub モードよりも安定しており、より多くのデータ型をサポートします。Hologres インスタンスを V2.1 にアップグレードする前に、次のいずれかのソリューションを使用して Realtime Compute for Apache Flink のデプロイメントと Hologres インスタンスを確認し、Realtime Compute for Apache Flink のデプロイメントが期待どおりに実行できることを確かめてください。詳細については、「JDBC 経由でのバイナリログの消費」をご参照ください。

  • ソリューション 1:推奨。Realtime Compute for Apache Flink の VVR バージョンを 8.0.7 以降にアップグレードしてから、Hologres インスタンスをアップグレードします。この場合、Realtime Compute for Apache Flink は HoloHub モードを自動的に JDBC モードに変更します。

  • ソリューション 2:Realtime Compute for Apache Flink の VVR バージョンを 6.0.7~8.0.5 のバージョンにアップグレードし、Realtime Compute for Apache Flink のソーステーブルに 'sdkMode'='jdbc' 設定を追加してから、デプロイメントを再起動します。Hologres インスタンスへのログオンに使用するユーザーアカウントに、次のいずれかの権限セットを付与します。デプロイメントが正常に実行されることを確認した後、Hologres インスタンスをアップグレードします。

    • Hologres インスタンスのスーパーユーザー権限

    • テーブルオーナーの権限、CREATE DATABASE 権限、および Hologres インスタンスのレプリケーションロールの権限

  • ソリューション 3:非推奨。Realtime Compute for Apache Flink の VVR バージョンを 8.0.6 にアップグレードしてから、Hologres インスタンスをアップグレードします。この場合、Realtime Compute for Apache Flink は HoloHub モードを自動的に JDBC モードに変更します。VVR 8.0.6 を使用する Realtime Compute for Apache Flink には既知の欠陥があります。ディメンションテーブルのフィールド数が過剰な場合、VVR ベースの Realtime Compute for Apache Flink のドラフトはタイムアウトによりデプロイメントに失敗します。詳細については、「概要」の「Hologres コネクタリリースノート」のセクションをご参照ください。

  • オプション。多数の VVR ベースの Realtime Compute for Apache Flink デプロイメントがある場合は、「Realtime Compute for Apache Flink または Blink を使用して Hologres バイナリログをリアルタイムで消費する」の手順に従って、デプロイメントとテーブルに関する情報を取得できます。

V2.1 (2024 年 2 月)

Hologres V2.1.19 では、DECIMAL 型データの乗算および除算が修正されました。V2.1.19 より前のバージョンでは、DECIMAL 型データの基本演算でサポートされる小数点以下の桁数は最大 18 桁です。乗算または除算の後に計算結果が小数点以下 18 桁を超える場合は、計算前にデータが切り捨てられます。その結果、計算結果が無効になります。

たとえば、2 つの decimal 値を乗算する場合、その乗算結果における小数点の前後の合計桁数 (precision_ans) と小数部の桁数 (scale_ans) は、以下の式で計算されます。

precision_ans = precision_l + precision_r
scale_ans  = scale_l + scale_r

scale_ans の値が 18 より大きい場合、小数点以下 18 桁のみが保持されます。乗算に使用される小数値は、次のルールに基づいて、指定された小数点以下の桁数に切り捨てられます。

  • scale_l ≤ 9 の場合、関連する小数値は切り捨てられず、乗算における小数値の小数点以下の桁数は scale_l になります。

  • scale_l > 9 の場合、対応する 10 進値は max(9,18-scale_r) によって返される小数点以下の桁数に切り捨てられます。

  • scale_r ≤ 9 の場合、関連する小数値は切り捨てられず、乗算における小数値の小数点以下の桁数は scale_r になります。

  • scale_r > 9 の場合、関連する小数値は max(9,18-scale_l) が返す小数点以下の桁数に切り捨てられます。

次のサンプルコードは例を示しています:

CREATE TABLE t (a DECIMAL(30,10), b DECIMAL(30,10));
INSERT INTO t VALUES (1.1111111111, 1.0000000000),(1.1111111112, 1.0000000000);
SELECT a, b , a*b FROM t;
  • V2.1.19 より前のバージョンでは、乗数の有効な小数点以下の桁数が 9 桁を超える場合、乗数は指定された小数点以下の桁数に切り捨てられ、精度が低下します。その結果、計算結果が無効になります。

    -- Hologres での計算結果は無効です。
    1.1111111111, 1.0000000000,1.111111111000000000
    1.1111111112, 1.0000000000,1.111111111000000000
    
    -- PostgreSQL での計算結果は有効です。
    1.1111111111, 1.0000000000,1.111111111100000000
    1.1111111112, 1.0000000000,1.111111111200000000
  • Hologres V2.1.19 以降、この問題は修正されました。元の 10 進値に対して乗算を実行し、その後、指定された小数点以下の桁数に乗算結果を切り捨てます。これにより、結果の精度が向上します。

    -- 計算結果は有効です。
    1.1111111111, 1.0000000000,1.111111111100000000
    1.1111111112, 1.0000000000,1.111111111200000000

V2.1 (2023年10月)

特定の機能が最適化されました。

  • Hologres V2.1.12 以降、固定プラン機能を使用して DECIMAL 型の列にデータを書き込む際、精度が指定されておらず、ソースデータの精度が宛先列の精度よりも高い場合、Hologres は宛先列の精度に基づいてソースデータを丸めます。Hologres V2.1.11 以前では、Hologres は宛先列の精度に基づいてソースデータを切り捨てます。以下に例を示します。

    説明

    Hologres V2.1.12 以降では、固定プラン機能を使用するかどうかに関係なく、処理は同じです。

    CREATE TABLE fixed_plan_decimal (col DECIMAL(3,2));
    
    -- Hologres V2.1.12 以降では、データ 2.56 が書き込まれます。V2.1.12 より前のバージョンでは、データ 2.55 が書き込まれます。
    INSERT INTO fixed_plan_decimal VALUES (2.555);
    
    -- すべての Hologres バージョンで、データ 2.55 が書き込まれます。
    INSERT INTO fixed_plan_decimal VALUES (2.554);
  • データマップデータリネージ、および転送暗号化はベータフェーズを完了し、一般提供を開始しました。

  • Hologres Binlog を消費する際の権限要件が更新され、ターゲットテーブルに対する読み取り権限のみが必要になりました。詳細については、「JDBC 経由での Binlog の消費」をご参照ください。

  • Bulkload を使用して分散キーのない Hologres 内部テーブルにデータをインポートすると、インポートパフォーマンスが低下する可能性があります。

  • Hologres V2.1 以降、CREATE TABLE WITH PROPERTY 構文がサポートされ、テーブルプロパティの設定が簡素化されました。詳細については、「CREATE TABLE」をご参照ください。

  • Hologres V2.1 以降、DELETE および UPDATE 操作のコンパクションポリシーが変更され、タグ付けされたファイルを速やかに回収するようになりました。これにより、DELETE/UPDATE 操作が頻繁に行われる列指向テーブルのストレージが削減され、クエリパフォーマンスが向上する可能性があります。V2.1 にアップグレードした後、履歴の小さなファイルのバックグラウンドコンパクションにより、大量の CPU が消費され、ファイルのボリュームによっては 10 分以上、場合によっては数時間かかることがあります。

  • Hologres V2.1 以降、INSERT INTO <table_name> ON CONFLICT(<col_name>,...) DO 構文の CONFLICT で指定されたすべての列がプライマリキー列であるかどうかをチェックする機能が追加されました。いずれかの列がプライマリキー列でない場合、SQL ステートメントの実行は失敗します。詳細については、「INSERT ON CONFLICT (UPSERT)」をご参照ください。

  • Hologres V2.1 以降、外部テーブルを使用してデータレイクにアクセスするための dlf_fdw 拡張機能がデフォルトで作成されます。dlf_fdw 拡張機能を手動で作成する必要はありません。外部サーバーを作成する際に dlf_region パラメーターを指定する必要はなくなりました。dlf_endpointoss_endpoint、および dlf_catalog パラメーターのみを指定する必要があります。dlf_endpoint および oss_endpoint パラメーターには、エラーを防ぐための形式検証が追加されました。形式要件は次のとおりです。

    • dlf_endpoint: dlf-share.<nation>-<region>.aliyuncs.com

    • oss_endpoint:

      • OSS バケット: oss-<nation>-<region>-internal.aliyuncs.com

      • OSS-HDFS バケット: oss-<nation>-<region>.oss-dls.aliyuncs.com

  • 以下のキーワードは、非予約キーワードとして使用されます: system_timeproctime、および dynamic。非予約キーワードは、SQL ステートメントで列名として使用することはできず、エイリアスとしてのみ使用できます。非予約キーワードは、AS の後で使用する必要があります。サンプルステートメント:

    -- Hologres V2.0 以前では、これら 3 つのキーワードは SQL ステートメントで列名またはエイリアスとして使用できます。
    SELECT xxxx SYSTEM_TIME FROM t;
    
    SELECT xxxx AS SYSTEM_TIME FROM t;
    
    -- Hologres V2.1 以降では、これら 3 つのキーワードは SQL ステートメントでエイリアスとしてのみ使用できます。
    SELECT xxxx AS SYSTEM_TIME FROM t;

V2.0 (2023年6月)

一部の機能を最適化しました。

  • Realtime Compute for Apache Flink を使用して Hologres バイナリログを消費する場合、JDBC モードがサポートされます。'sdkMode'='holohub' 設定で指定される HoloHub モードは段階的に廃止されます。JDBC モードは HoloHub モードよりも安定しており、より多くのデータ型をサポートしています。Hologres インスタンスを V2.0 にアップグレードする前に、次のいずれかの解決策を使用して Realtime Compute for Apache Flink デプロイメントが Hologres インスタンスで正常に実行できることを確認してください。詳細については、「JDBC 経由での Binlog の消費」をご参照ください。

    • 解決策 1:推奨。Realtime Compute for Apache Flink の VVR バージョンを 8.0.6 以降にアップグレードしてから、Hologres インスタンスをアップグレードします。この場合、Realtime Compute for Apache Flink は自動的に HoloHub モードを JDBC モードに変更します。VVR 8.0.6 を使用する Realtime Compute for Apache Flink には既知の不具合があります。ディメンションテーブルに非常に多くのフィールドが含まれている場合、VVR ベースの Realtime Compute for Apache Flink デプロイメントがタイムアウトにより失敗します。詳細については、「概要」の「Hologres コネクタリリースノート」セクションをご参照ください。Realtime Compute for Apache Flink の VVR バージョンを 8.0.7 にアップグレードすることを推奨します。

    • 解決策 2:Realtime Compute for Apache Flink の VVR バージョンを 8.0.4 または 8.0.5 にアップグレードし、デプロイメントを再起動します。Hologres インスタンスへのログインに使用するユーザーアカウントに、次のいずれかの権限セットを付与してください。デプロイメントが正常に実行されることを確認した後、Hologres インスタンスをアップグレードしてください。

      • Hologres インスタンスのスーパーユーザー権限

      • テーブルオーナーの権限、CREATE DATABASE 権限、および Hologres インスタンスのレプリケーションロールの権限

    • 解決策 3:Realtime Compute for Apache Flink の VVR バージョンを 6.0.7~8.0.3 のいずれかのバージョンにアップグレードしてから、Hologres インスタンスをアップグレードします。この場合、Realtime Compute for Apache Flink は引き続き HoloHub モードを使用して Hologres バイナリログを消費します。

  • 'sdkMode'='rpc' または 'rpcMode'='true' 設定で指定されるリモートプロシージャコール (RPC) モードは、Realtime Compute for Apache Flink のディメンションテーブルおよび結果テーブルでサポートされなくなりました。代わりに JDBC モードが使用されます。Hologres インスタンスを V2.0 にアップグレードする前に、次の操作を実行して Realtime Compute for Apache Flink デプロイメントが Hologres インスタンスで正常に実行できることを確認してください。詳細については、「Hologres: リアルタイムデータウェアハウス」をご参照ください。

    • Realtime Compute for Apache Flink の VVR バージョンが 6.0.7 以降の場合、システムは自動的に RPC モードを JDBC モードに変更します。操作は不要です。

    • Realtime Compute for Apache Flink の VVR バージョンが 6.0.3 から 6.0.6 の場合、Realtime Compute for Apache Flink デプロイメントでは、'sdkMode'='rpc' 設定を 'sdkMode'='jdbc' に変更するか、'rpcMode'='true' 設定を 'rpcMode'='false' に変更してください。

    • Realtime Compute for Apache Flink の VVR バージョンが 6.0.2 以前の場合、Realtime Compute for Apache Flink デプロイメントでは、'rpcMode'='true' 設定を 'rpcMode'='false' に変更してください。

    • Hologres インスタンスへの接続が不足している場合、connectionPoolName パラメーターを設定して接続プール内の接続を共有することを推奨します。また、Realtime Compute for Apache Flink の VVR バージョンを 6.0.7 以降にアップグレードし、'sdkMode'='jdbc_fixed' 設定を使用することもできます。この場合、接続は占有されません。

    • RPC モードは、同じバッチ内で同じプライマリキーを持つデータの重複排除を行いません。JDBC モードは、データを自動的に重複排除します。ビジネスシナリオで完全なデータを保持する必要がある場合は、'jdbcWriteBatchSize'='1' 設定を使用して重複排除を防いでください。

  • Hologres V2.0 以降では、Blink を使用して Hologres のデータに対してリアルタイムポイントクエリを実行したり、Hologres にデータを書き込んだりすることはできません。Hologres インスタンスをアップグレードする前に、Blink デプロイメントを Realtime Compute for Apache Flink に移行することを推奨します。

V2.0 (2023年4月)

特定の機能が最適化されました。

  • Hologres V2.0 以降、セグメントフォーマットのデータは列指向ストレージモードで保存できません。セグメントフォーマットのデータを含む Hologres インスタンスは、V2.0 以降にアップグレードできません。hg_convert_segment_orc 関数を使用して、セグメントフォーマットの複数のテーブルを Optimized Row Columnar (ORC) フォーマットのテーブルに同時に変換できます。詳細については、「列指向テーブルのストレージフォーマットのアップグレード」をご参照ください。

  • テーブルグループまたはインスタンスのシャード数に上限が設けられました。これにより、テーブルグループの誤用によるリソースの浪費を防ぐことができます。詳細については、「テーブルグループとシャードの管理」をご参照ください。

  • DataHub へのデータ書き込みは、SDK モードではなく JDBC モードで行われます。JDBC モードは SDK モードよりも安定しており、より多くのデータ型をサポートしています。

  • デフォルトでバイナリログ拡張が設定されます。JDBC モードでバイナリログデータを消費する場合、バイナリログ拡張を作成する必要はありません。JDBC モードでバイナリログデータを消費する場合、walsender の最大数が 10 倍に増加します。32 CPU コアのインスタンスの場合、walsender の最大数は 200 から 2,000 に増加します。walsender はスロットとしてカウントされます。詳細については、「JDBC 経由での Binlog の消費」をご参照ください。

  • Hologres インスタンスをアップグレードした後、統計情報が収集されていないテーブルに対して自動分析機能が実行されます。このプロセスは CPU リソースを消費し、統計情報が収集されていないテーブルの数によっては、数分または数時間かかる場合があります。

  • バックアップと復元機能および階層化ストレージ機能のパブリックプレビューが完了し、本番環境で使用できるようになりました。

  • シャードレベルレプリケーション機能のパブリックプレビューが完了し、本番環境で使用できるようになりました。詳細については、「高スループットのためのシャードレベルレプリケーション」をご参照ください。

  • テーブルプロパティを指定するためのパラメーターが標準化されました。列名に大文字が含まれる場合に、テーブルプロパティを設定する構文が変更されました。詳細については、「CREATE TABLE」をご参照ください。bitmap_columns プロパティでは、値 auto がサポートされなくなりました。この変更は、既存のテーブルの使用には影響しません。

  • HG_CREATE_TABLE_LIKE 関数は、作成されたインデックス、SERIAL データ型の列、および Proxima ベクターインデックスが作成されている列を継承できるようになりました。

V1.3 (2023年6月)

  • Hologres V1.3.53 以降では、レプリカ数はワーカー数以下にする必要があります。詳細については、「高スループットのためのシャードレベルのレプリケーション (ベータ)」をご参照ください。

  • Avg 関数の計算結果が最適化されました。V1.3 より前の Hologres バージョンでは、Avg 関数は最大で小数点以下 6 桁の計算結果を返します。計算結果に小数点以下 6 桁を超える桁が含まれる場合、計算結果は切り捨てられます。Hologres V1.3 以降では、Avg 関数はすべての小数点以下の桁を含む計算結果を返します。

  • DECIMAL 型から TEXT 型への値変換が最適化されました。V1.3.46 より前の Hologres バージョンでは、DECIMAL 型から TEXT 型に変換された値は、指数表記フォーマットで表示されます。Hologres V1.3.46 以降では、DECIMAL 型から TEXT 型に変換された値は、直接表示されます。SQL ステートメントの例:

    CREATE TABLE t (a INT, b DECIMAL(38,10));
    INSERT INTO t VALUES (1,1);
    INSERT INTO t VALUES (1,0);
    SELECT a,b,b::text FROM t;
    -- Hologres V1.3.46 以降では、以下の結果が返ります。
    a	|  b	        |b
    --+-------------+------
    1 |0.0000000000	|0.0000000000
    1 |1.0000000000	|1.0000000000
    
    -- Hologres V1.3.46 より前のバージョンでは、以下の結果が返ります。
    a	|  b	        |b
    --+-------------+------
    1 |0.0000000000	|0.E-10
    1 |1.0000000000	|1.0000000000

2023 年 2 月リリースの Hologres V1.3 のデフォルト動作の変更

特定の機能を最適化しました。

Hologres V1.3.36 以降、スキーマレベルの簡易権限モデル (SLPM) を使用して、スキーマをまたいでビューを作成できるようになりました。詳細については、「SLPM の使用」をご参照ください。

V1.3 (2023年1月)

特定の機能が最適化されました。

  • Hologres V2.0 以降では、セグメントフォーマットのテーブルはサポートされなくなりました。Hologres V1.3.35 以降では、セグメントフォーマットの複数のテーブルを同時に ORC フォーマットのテーブルに変換するステートメントが利用できるようになりました。この変換により、既存のテーブルのデータの移行が容易になります。詳細については、「列指向テーブルのストレージフォーマットのアップグレード」をご参照ください。セグメントフォーマットのデータを含む Hologres インスタンスは、以降のバージョンにアップグレードできません。

  • Hologres V1.3.35 以降では、固定プラン機能において、より多くの Grand Unified Configuration (GUC) パラメータがデフォルトで on に設定されるようになりました。これにより、システムのユーザビリティとパフォーマンスが向上します。詳細については、「固定プランによる SQL 実行の高速化」をご参照ください。

V1.3 (2022年12月)

特定の機能を最適化しました。

  • [2022年12月26日] 以降、Alibaba Cloud は、バックアップや復元機能で作成されたインスタンスを含め、新規インスタンスに対して Virtual Private Cloud (VPC) エンドポイントを提供しなくなりました。より安全な VPC エンドポイントを指定できます。指定した VPC エンドポイントは、Hologres インスタンスの購入時に選択した VPC にのみ接続されます。これにより、セキュリティと分離が向上します。既存のインスタンスは影響を受けません。元の VPC エンドポイントを無効にし、代わりに VPC エンドポイントを指定することを推奨します。

  • Hologres V1.3.31 以降では、デフォルトで Hologres のデータを暗号化し、MaxCompute 内の暗号化されたデータにクエリを実行できます。追加の設定やチケットを起票する必要はなくなりました。詳細については、「保管中のデータの暗号化」および「暗号化された MaxCompute データのクエリ」をご参照ください。

V1.3 (2022 年 11 月)

特定の機能が最適化されました。

  • Hologres V1.3.28 以降、クラスタリングキーまたはセグメントキーとして設定された列には、NULL 値 を含めることができなくなりました。詳細については、「クラスタリングキー」および「イベント時刻列 (セグメントキー)」をご参照ください。

  • Hologres V1.3.28 以降、hg_experimental_load_all_foreign_table_interval_time パラメーターのデフォルト値が 5min から 30min に変更されました。このパラメーターは、すべての MaxCompute テーブルの外部テーブルを自動作成する定期検査の間隔を指定します。詳細については、「MaxCompute テーブルの外部テーブルの自動作成」をご参照ください。

  • Hologres V1.3.28 以降、分散キーとして設定された列には空の文字列を含めることができなくなりました。詳細については、「分散キー」をご参照ください。

  • Hologres V1.3.27 以降、プライマリインスタンスからセカンダリインスタンスへのデータ同期のレイテンシーしきい値が 20 分から 60 分に変更されました。同期レイテンシーが 60 分を超えると、セカンダリインスタンスは自動的に再起動されます。詳細については、「マルチインスタンス高可用性デプロイメントの設定」をご参照ください。

V1.3 (2022 年 10 月)

一部の機能を最適化しました。

  • Hologres V1.3.24 以降、hg_worker_info システムビューを使用して、シャードとワーカーノード間の割り当て関係をクエリできるようになりました。これにより、コンピューティングリソースの割り当てが偏る問題を解消できます。詳細については、「ワークロードの偏りの検出と対処」をご参照ください。

  • Hologres V1.3.24 以降、テーブルデータの最小 Time to Live (TTL) は 1 日 (86,400 秒) です。詳細については、「その他の PostgreSQL ステートメント」をご参照ください。

  • Hologres V1.3.24 以降、Hologres でバイナリロギングを有効にすると、pg_relation_size 関数がバイナリログのサイズを返すようになりました。詳細については、「テーブルとデータベースのストレージサイズのクエリ」をご参照ください。

  • Hologres V1.3.24 以降、ビジネス要件に基づいて、子テーブルのバイナリログの TTL を設定できるようになりました。詳細については、「Hologres binlog のサブスクライブ」をご参照ください。

V1.3 (2022年9月)

特定の機能を最適化しました。

  • TTL の有効期限が切れ、同じプライマリキーが重複している場合、データの書き込みに失敗します。 Hologres V1.3.23 以降では、SQL ステートメントを使用してこの問題を修正できます。 詳細については、「INSERT ON CONFLICT (UPSERT)」をご参照ください。

  • Hologres V1.3.22 以降、PostgreSQL システムテーブルと作成した Hologres 内部テーブルを結合できるようになりました。 また、PostgreSQL システムテーブルから Hologres 内部テーブルにデータをエクスポートすることもできます。 詳細については、「システムテーブル」をご参照ください。

  • Hologres V1.3.22 以降、DATE 型の列をプライマリキー列またはパーティションキー列として設定できるようになりました。 詳細については、「CREATE TABLE」をご参照ください。

  • Hologres V1.3.21 以降、CREATE TABLE AS ステートメントを使用して、既存のテーブルと同じテーブル構造とデータを持つテーブルを作成できるようになりました。 詳細については、「CREATE TABLE AS」をご参照ください。

V1.3 (2022 年 7 月)

特定の機能を最適化しました。

  • JSON 関連機能のパブリックプレビューが完了し、正式にリリースしました。

  • PostGIS 関連機能のパブリックプレビューが完了し、正式にリリースしました。

  • Data Integration や Realtime Compute for Apache Flink などを利用してデータを挿入する場合は、SDK ではなく SQL 文 (INSERT 文) を使用してデータを書き込むことを推奨します。

V1.1 (2022年7月)

Hologres には、自己診断および自己運用保守の能力を向上させるために、多くのメトリクスが追加されています。これらのメトリクスは、問題の特定や、リソース使用量の詳細をより正確にクエリするのに役立ちます。これにより、Hologres の全体的な可用性が向上します。メトリクスを使用する際は、次の点にご注意ください:

  • 2022年7月に追加されたメトリクスは、Hologres V1.1 以降にのみ適用されます。Hologres インスタンスのバージョンが V1.1 より前の場合は、Hologres コンソールでインスタンスを手動でアップグレードするか、テクニカルサポートについては DingTalk グループに参加してください。Hologres コンソールでインスタンスを手動でアップグレードする方法の詳細については、「手動アップグレード (ベータ)」をご参照ください。テクニカルサポートの受け方の詳細については、「オンラインサポートの利用方法」をご参照ください。

  • CPU とメモリのメトリクスがより正確に計算されるようになりました。2022年7月のアップデート後、V1.1 インスタンスの CPU 使用率とメモリ使用量は、CloudMonitor で表示される値を含め、5%~10%変動する可能性があります。この変動に合わせてモニタリングのしきい値を再設定してください。

メトリクスの詳細については、「監視メトリクス」をご参照ください。

V1.1 (2022 年 4 月)

メモリ使用量を最適化しました。

Hologres V1.1.53 以降では、メモリ使用量が最適化され、バックエンド O&M メトリクスの報告効率が向上したことで、コンピューティングに使用できるメモリが増えます。ビジネス要件に基づいて V1.1.53 にアップグレードしてください。

V1.1 (2022 年 3 月)

固定計画によるポイントクエリのパフォーマンスが最適化されました。

Hologres V1.1.49 以降では、固定計画によるポイントクエリのパフォーマンスが最適化されました。大量のデータを含むポイントクエリでは、スループットが 30% 以上向上します。ビジネス要件に応じて、Hologres インスタンスのバージョンを V1.1.49 以降に更新できます。固定計画の詳細については、「固定計画による SQL 実行の高速化」をご参照ください。

V1.1 (2022 年 3 月)

子テーブルを親テーブルにアタッチする際にプロパティが検証されます。

Hologres V1.1.42 以降では、子テーブルを親テーブルにアタッチする際に、子テーブルと親テーブルのプロパティが厳密に検証されるようになりました。子テーブルのプロパティが親テーブルのプロパティと一致しない場合、エラーが報告され、アタッチ操作は失敗します。システムが検証するプロパティには、プライマリキー、インデックス、および NOT NULL 制約が含まれます。子テーブルを作成する前に、子テーブルのプロパティが親テーブルのプロパティと一致していることを確認してください。詳細については、「CREATE PARTITION TABLE」をご参照ください。

次のサンプルコードは、子テーブルのクラスタリングキーが親テーブルのクラスタリングキーと一致しない例です。この場合、子テーブルを親テーブルにアタッチできません。

-- この例では、次のデータ定義言語 (DDL) ステートメントを実行して、親テーブルと子テーブルを作成します。
BEGIN;
CREATE TABLE public.hologres_parent(
  a INT,
  b text NOT NULL,
  c timestamptz NOT NULL,
  ds text,
  PRIMARY KEY(a,ds)
)
 PARTITION BY LIST(ds);
CALL set_table_property('public.hologres_parent', 'orientation', 'column');
CALL set_table_property('public.hologres_parent', 'distribution_key', 'a');
CALL set_table_property('public.hologres_parent', 'clustering_key', 'b');
CALL set_table_property('public.hologres_parent', 'event_time_column', 'c');

CREATE TABLE public.hologres_child PARTITION OF public.hologres_parent 
FOR VALUES IN('20201103');

COMMIT;

-- 一時的な子パーティションテーブルを作成します。
BEGIN;
CREATE TABLE IF NOT EXISTS public.tmp_hologres_child(
  a INT,
  b text NOT NULL,
  c timestamptz NOT NULL,
  ds text,
  PRIMARY KEY (a,ds)
);
CALL set_table_property('public.tmp_hologres_child', 'orientation', 'column');
CALL set_table_property('public.tmp_hologres_child', 'distribution_key', 'a');
CALL set_table_property('public.tmp_hologres_child', 'clustering_key', 'a,b');
CALL set_table_property('public.tmp_hologres_child', 'event_time_column', 'c');
COMMIT;

-- 外部テーブルから一時的な子パーティションテーブルにデータを挿入します。
INSERT INTO public.tmp_hologres_child SELECT * FROM foreign_table WHERE ds='20201103';

-- 元の子パーティションテーブルを削除し、一時的な子パーティションテーブルを親テーブルにアタッチします。
BEGIN;
DROP TABLE IF EXISTS  public.hologres_child;
ALTER TABLE public.tmp_hologres_child RENAME TO hologres_child;
ALTER TABLE public.hologres_parent ATTACH PARTITION public.hologres_child
FOR VALUES IN ('20201103');
COMMIT ;

-- 報告されるエラーメッセージ
ERROR: 
partition index hologres_child's immutable properties(e.g. clustering_key, event_time_column) is inconsistent with parent.  
Hint: create partition with [create table ... partition of ...] to be consistent with parent.                

V1.1 (2021 年 12 月)

デフォルトでは、新規 Hologres インスタンスのパブリックエンドポイントは無効です。

データアクセス制御のセキュリティ要件を満たすため、2021 年 12 月 7 日 00:00:00 以降、新規 Hologres インスタンスのパブリックエンドポイントは自動的に無効になり、デフォルトではインターネットアクセス機能が提供されなくなります。パブリックエンドポイントを使用して Hologres インスタンスに接続する場合は、Hologres コンソールでパブリックエンドポイントを有効にできます。

V1.1 (2021 年 11 月)

コンピューティング用の最大メモリは、ノードあたり 20 GB に制限されなくなりました。

Hologres V1.1.24 以降、ワーカーノードにおけるノードあたり 20 GB の制限が撤廃されました。コンピューティング用のメモリは、クエリが正常に完了するように、ノードの使用量に基づいて動的に割り当てられます。有効な実行計画にもかかわらず、V1.1.24 以降でメモリ不足エラーが発生する場合は、SQL 文を最適化するか、インスタンスをスケールアップしてください。

説明

Hologres インスタンスのバックエンドは複数のノードで構成されます。Hologres インスタンスのノード数は、インスタンスの仕様に応じて異なります。単一ノードの最大メモリは 64 GB です。ノードのメモリは、コンピューティング、キャッシュ、およびメタデータと常駐プロセスに均等に割り当てられます。

V1.1 (2021 年 10 月)

  • デフォルトで自動分析機能が有効になっています。

    V0.10 で導入され、本番環境で実績のある自動分析機能は、V1.1 の新しいインスタンスではデフォルトで有効になっています。アップグレードされたインスタンスは、既存の設定を保持します。V1.1 ではパラメータ名も変更されています。

    元のパラメータ名

    新しいパラメータ名

    デフォルト値

    hg_experimental_enable_start_auto_analyze_worker

    hg_enable_start_auto_analyze_worker

    on

    自動分析機能の使用方法の詳細については、「ANALYZE と AUTO ANALYZE」をご参照ください。

  • テーブルグループに関連する関数名が変更されました。

    V0.10 で導入され、本番環境で実績のあるリシャーディング機能について、V1.1 ではテーブルグループ関数の名前が変更されました。

    元の関数名

    新しい関数名

    hg_update_table_shard_count('table_name', 'table_group_name')

    hg_move_table_to_table_group('table_name', 'table_group_name')

  • Hologres で MaxCompute 外部テーブルに高速アクセスするためのエンジンが変更されました。

    V0.10 で導入された新しい MaxCompute 外部テーブルエンジンにより、パフォーマンスが 30% 以上向上しました。V1.1 では、このエンジンが新しいインスタンスのデフォルトになります。アップグレードされたインスタンスは、既存のエンジンを保持します。パラメータ名も変更されています。

    元のパラメータ名

    新しいパラメータ名

    備考

    hg_experimental_enable_access_odps_orc_via_holo

    hg_enable_access_odps_orc_via_holo

    デフォルト値:on。

    hg_experimental_foreign_table_executor_max_dop

    hg_foreign_table_executor_max_dop

    デフォルト値がインスタンスの CPU コア数に変更されました。最大値は 128 です。

    なし

    hg_foreign_table_executor_dml_max_dop

    このパラメータは Hologres V1.1 で追加されました。デフォルト値は 32 です。このパラメータは、外部テーブルに関連する DML ステートメントに適用されます。

    hg_experimental_foreign_table_split_size

    hg_foreign_table_split_size

    デフォルト値:64 MB。

    hg_experimental_foreign_table_max_partition_limit

    hg_foreign_table_max_partition_limit

    デフォルト値は 512 です。この値は、1 つのクエリで最大 512 個のパーティションをスキャンできることを示します。

    hg_experimental_enable_write_maxcompute

    なし

    このパラメータは V1.1 で削除されました。MaxCompute へのデータ書き戻し機能はデフォルトで有効になっています。詳細については、「MaxCompute へのデータのエクスポート」をご参照ください。

    パラメータの詳細については、「MaxCompute クエリの高速化」をご参照ください。

  • pg_stat_activity テーブルは、すべてのフロントエンドノードのアクティブな接続のステータスを記録します。

    V1.1 より前のバージョンでは、pg_stat_activity は単一の FE ノードのアクティブな接続のみを記録していました。V1.1 では、すべての FE ノードを対象としています。pg_stat_activity テーブルを使用してアクティブなクエリを管理する方法の詳細については、「クエリの管理」をご参照ください。

  • 接続管理メカニズムが調整されました。

    Hologres V1.1 以降では、スーパーユーザ用に接続が予約され、HoloWeb 接続プールのロジックが最適化されています。接続制限を超えた場合、スーパーユーザは HoloWeb を使用して接続を管理または解放できます。詳細については、「接続の管理」をご参照ください。

  • idle_in_transaction_session_timeout パラメータのデフォルト値が変更されました。

    idle_in_transaction_session_timeout パラメータは、アイドル状態のトランザクションのタイムアウトを指定します。この設定がない場合、タイムアウトしたトランザクションはロールバックされず、デッドロックのリスクがあります。V1.1 では、idle_in_transaction_session_timeout のデフォルト値は 10 分です。詳細については、「クエリの管理」をご参照ください。