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

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

最終更新日:Feb 12, 2026

このトピックでは、Hologres の各バージョンにおけるデフォルト動作の変更点について説明します。

説明

パラメーター名は下位互換性があります。後続のバージョンでパラメーター名が変更された場合でも、元のパラメーター名は引き続き使用できます。ただし、新しいパラメーター名の使用を推奨します。

V4.1

2026 年 1 月

  • セキュリティおよびコンプライアンス

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

  • データアクセス経路およびデータモデリング制約

    • MaxCompute 直接読み取り: Hologres は今後、より安定性と互換性の高い Common Table メカニズムを MaxCompute 直接読み取りのデフォルトとして使用します。

    • セグメントキー制約の緩和: NULL を許容する列(nullable columns)をセグメントキーとして指定できるようになりました。これにより、データモデリングの柔軟性が大幅に向上します。

  • DML およびトランザクションの厳格な制約

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

      ERROR:  トランザクション内で INSERT OVERWRITE または TRUNCATE を DML 文と混在させることはサポートされていません。
    • 明示的トランザクションにおける DELETE のパフォーマンス: トランザクション整合性を保証し、デッドロックリスクを低減するため、明示的トランザクションの有効化(SET hg_experimental_enable_transaction = ON)により、完全テーブル DELETE 操作の動作が変更されます。今後は、ファイルレベルの物理削除最適化をバイパスし、行単位の論理削除として実行されます。ユーザーは、潜在的なパフォーマンスへの影響を評価することを推奨します。

  • メタデータ識別

    • 統計最適化:table_info 内の Dynamic Tables のタイプ識別子が、DYNAMIC TABLE に標準化されました。これにより、識別および管理が容易になります。

  • 以下の機能がベータ版から卒業し、本番環境での利用が可能になりました:

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 経路による MaxCompute へのアクセス」をご参照ください。

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

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

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

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

  • 動的テーブルのアダプティブ実行: Hologres V4.0+ では、動的テーブル のフルリフレッシュモードにおいて、アダプティブ実行がデフォルトで有効化されました。これにより、大規模ワークロードにおけるピークリソース消費が削減され、ワークロードの安定性が向上します。また、コスト削減のためにリソース消費をより正確に見積もり、実行中のサブオプティマルなクエリプランを最適化することで、不正確な統計情報に起因する失敗を防止します。

V3.2(2025 年 7 月)

  • BranchOverwriteParameterTag などの非予約キーワードを追加しました。また、LambdaQualify などの予約キーワードを追加しました。キーワードに関する詳細については、「PostgreSQL キーワード」をご参照ください。

  • Hologres V3.2 以降、CTE のアダプティブ最適化がサポートされます。CTE のマテリアライズ戦略は、2 つの GUC パラメーター:optimizer_cte_inlining および hg_cte_strategy によって決定されます。これらのパラメーターは相互に独立しており、設定順序に関係なく個別に設定可能です。それぞれの動作は以下のとおりです:

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

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

      • 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 の新構文を使用する必要があります。増分データリフレッシュを使用するテーブルの場合は、新構文を使用してテーブルを再作成する必要があります。詳細については、「CREATE DYNAMIC TABLE」をご参照ください。

    • リソース使用量

      • リフレッシュリソース

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

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

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

        • 旧構文(Hologres V3.0)および新構文(Hologres V4.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」をご参照ください。

  • 非予約キーワードを追加しました:asynclogicalpurgerecoverrebuildresumesuspend。詳細については、「PostgreSQL キーワード」をご参照ください。

V3.0

2025 年 4 月

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

2025 年 2 月

  • Hologres V3.0.23 以降、必要な権限を持たないユーザーは、データベース、スキーマ、およびテーブルのメタデータをクエリできなくなりました。BI ツールやその他のツールを Hologres インスタンスに接続する場合、未承認のアクセスに対して「権限がありません」というメッセージが表示されます。

  • 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」というエラーメッセージが報告されます。ユーザーがバイナリログを消費できるようにするには、以下のいずれかのステートメントを実行して、そのユーザーのデータマスキングを無効化する必要があります。

    重要

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

    -- ユーザーのデータマスキングを無効化します。
    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 Hint 機能のパブリックプレビューが完了し、本番環境での利用が可能になりました。デフォルトで有効化されています。

  • メタデータウェアハウスでは、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」というエラーメッセージが報告されます。ユーザーがバイナリログを消費できるようにするには、以下のいずれかのステートメントを実行して、そのユーザーのデータマスキングを無効化する必要があります。

    重要

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

    -- ユーザーのデータマスキングを無効化します。
    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 以降、実行計画が使用できるメモリ空間に 4 GB(デフォルト)の制限が課されます。これにより、システムのメモリ不足(OOM)リスクが低減されます。SQL 文の実行中に「"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 Database Connectivity(JDBC)を使用して Hologres バイナリログを消費する場合、ワーカーで利用可能な walsenders の最大数が、1,000 から 600 に減少しました。walsenders の数はスロット数によって計算されます。詳細については、「JDBC を使用した Hologres Binlog データの消費」をご参照ください。Hologres バイナリログの消費には、jdbc_fixed モードの使用を推奨します。JDBC モードでのログ消費と比較して、jdbc_fixed モードでのログ消費は接続を占有せず、walsenders の数の制限を受けません。jdbc_fixed モードの詳細については、「Hologres」をご参照ください。

V2.2(2024 年 6 月)

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

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

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

    -- トランザクション内で複数の DDL 文を含むクエリを開始します。
    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 ミリ秒に変更されました。この変更により、スロークエリログは 100 ミリ秒を超える 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 にアクセスする場合、サービスリンクロールがデフォルトで使用されます。Hologres インスタンスを購入するか、Hologres インスタンスを V2.2 以降にアップグレードする場合、サービスリンクロールを作成し、そのサービスリンクロールに権限を付与する必要があります。サービスリンクロールは、信頼できるエンティティが Alibaba Cloud サービスである RAM ロールです。サービスリンクロールは、Alibaba Cloud サービス間の承認済みアクセスを実現します。サービスリンクロールは、Alibaba Cloud サービスへのアクセスに必要な権限をより適切に設定し、誤操作によるリスクを防止するのに役立ちます。詳細については、「Hologres サービスリンクロール」をご参照ください。

  • Hologres V2.2 以降、デフォルトのオプティマイザーポリシーが exhaustive から exhaustive2 に変更されました。ほとんどの場合、この変更によりパフォーマンスが 20%~40% 向上します。ただし、left outer join 操作を含むクエリでは、実行計画が最適でなくなり、特定のジョブのメモリ使用量が増加する場合があります。このような場合、set optimizer_join_order = 'exhaustive'; ステートメントを手動で実行して、オプティマイザーポリシーを exhaustive に変更できます。

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

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

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

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

V2.1(2024 年 6 月)

Hologres V2.1.27 以降、Realtime Compute for Apache Flink(VVR 8.0.7 以降)を使用して Hologres バイナリログを消費する場合、JDBC モードが自動的に jdbc_fixed モードにアップグレードされます。JDBC モードでのクエリと比較して、jdbc_fixed モードでのクエリは接続を消費せず、walsenders の最大数による制限を受けません。jdbc_fixed モードの詳細については、「Hologres」をご参照ください。JDBC モードの詳細については、「JDBC を使用した Hologres 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 を使用した Hologres Binlog データの消費」をご参照ください。

  • ソリューション 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 つの 10 進数の値を乗算する場合、その乗算結果における小数点の前後の合計桁数 (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 の場合、関連する小数値は 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 以降、この問題が修正されました。乗算操作は元の小数値に対して実行され、その後、乗算結果が指定された小数点以下の桁数に切り捨てられます。これにより、結果の精度が高くなります。

    -- 計算結果は有効です。
    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);
  • データマップデータリネージ、および 送信暗号化 がベータフェーズを終了し、一般提供(GA)となりました。

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

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

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

  • Hologres V2.1 以降、DELETE および UPDATE 操作のコンパクションポリシーが変更されました。この変更により、DELETE 操作が実行されたタグ付きファイルが適切なタイミングで回収されるようになりました。列指向テーブルで DELETE および UPDATE 操作が頻繁に実行されるシナリオでは、ストレージ領域が削減され、クエリパフォーマンスが向上する可能性があります。Hologres インスタンスを V2.1 以降にアップグレードした場合、履歴の小さなファイルがバックグラウンドでコンパクションされ、大量の CPU リソースが消費されます。コンパクションには、小さなファイルのサイズに応じて 10 分以上、あるいは数時間かかる場合があります。

  • Hologres V2.1 以降、CONFLICT で指定されたすべての列が INSERT INTO <table_name> ON CONFLICT(<col_name>,...) DO 構文のプライマリキー列であるかどうかをチェックするメカニズムが追加されました。いずれかの列がプライマリキー列でない場合、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 インスタンスを確認し、Realtime Compute for Apache Flink のデプロイメントが期待通りに実行されることを保証してください。詳細については、「JDBC を使用した Hologres 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 バイナリログを消費します。

  • Realtime Compute for Apache Flink のディメンションテーブルおよび結果テーブルで、'sdkMode'='rpc' または 'rpcMode'='true' で指定されるリモートプロシージャコール(RPC)モードは、サポートされなくなりました。代わりに JDBC モードが使用されます。Hologres インスタンスを V2.0 にアップグレードする前に、Realtime Compute for Apache Flink のデプロイメントと Hologres インスタンスを確認し、Realtime Compute for Apache Flink のデプロイメントが期待通りに実行されることを保証してください。詳細については、「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 以降にアップグレードできません。複数のセグメント形式のテーブルを同時に Optimized Row Columnar(ORC)形式のテーブルに変換するには、hg_convert_segment_orc 関数を使用できます。詳細については、「列指向テーブルのデータストレージ形式の変更」をご参照ください。

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

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

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

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

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

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

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

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

V1.3(2023 年 6 月)

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

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

  • DECIMAL 型の値から変換された TEXT 型の値が最適化されました。Hologres V1.3.46 より前のバージョンでは、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

Hologres V1.3(2023 年 2 月)のデフォルト動作の変更点

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

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 に設定されました。これにより、システムの使いやすさおよびパフォーマンスが向上します。詳細については、「Fixed Plan を使用した SQL 実行の高速化」をご参照ください。

V1.3(2022 年 12 月)

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

  • 2022年12月26日以降、Alibaba 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 以降、テーブルデータの最小生存時間(TTL)は 1 日(86,400 秒)です。詳細については、「その他の PostgreSQL ステートメント」をご参照ください。

  • Hologres V1.3.24 以降、Hologres のバイナリログを有効化した場合、pg_relation_size 関数はバイナリログのサイズを返します。詳細については、「テーブルおよびデータベースのストレージサイズの照会」をご参照ください。

  • Hologres V1.3.24 以降、子テーブルのバイナリログの TTL をビジネス要件に応じて設定できます。詳細については、「Hologres binlogs の購読」をご参照ください。

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 ステートメントを使用してデータを書き込むことを推奨します。SQL ステートメントは INSERT ステートメントです。

V1.1(2022 年 7 月)

Hologres のセルフ診断およびセルフ運用保守(O&M)機能を向上させるため、多数のメトリックが追加されました。これらのメトリックにより、問題の特定およびリソース使用状況の詳細な照会がより正確に行えるようになり、Hologres の全体的な可用性が向上します。メトリックを使用する際は、以下の点に注意してください:

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

  • CPU およびメモリのメトリックは、リソース使用状況をより正確に把握できるよう、より正確な方法で計算されます。2022 年 7 月に新しいメトリックがリリースされた後、V1.1 の Hologres インスタンスの CPU 使用率およびメモリ使用率は、5%~10% の間で変動する場合があります。CloudMonitor における Hologres インスタンスの CPU 使用率およびメモリ使用率も同様に変動します。CloudMonitor のアラート情報を確認し、適切なモニタリングしきい値を再設定してください。

メトリックの詳細については、「コンソールにおける Hologres モニタリングメトリック」をご参照ください。

V1.1(2022 年 4 月)

メモリ使用量が最適化されました。

Hologres V1.1.53 以降、メモリ使用量が最適化されました。また、O&M メトリックもバックエンドで最適化された方法で報告されるようになりました。これにより、より少ないメモリリソースが占有され、より多くのメモリリソースがコンピューティングに割り当てられます。ビジネス要件に応じて、Hologres インスタンスのバージョンを V1.1.53 にアップグレードできます。

V1.1(2022 年 3 月)

固定プランを使用したポイントクエリのパフォーマンスが最適化されました。

Hologres V1.1.49 以降、固定プランを使用したポイントクエリのパフォーマンスが最適化されました。大量のデータを対象としたポイントクエリでは、スループットが 30% 以上向上します。ビジネス要件に応じて、Hologres インスタンスのバージョンを V1.1.49 以降にアップグレードできます。固定プランの詳細については、「Fixed Plan を使用した SQL 実行の高速化」をご参照ください。

V1.1(2022 年 3 月)

子テーブルを親テーブルにアタッチする要求を発行した後、子テーブルおよび親テーブルのプロパティが厳密に検証されます。

Hologres V1.1.42 以降、子テーブルを親テーブルにアタッチする要求を発行した後、子テーブルおよび親テーブルのプロパティが厳密に検証されます。子テーブルのプロパティが親テーブルのプロパティと一致しない場合、エラーが報告され、アタッチ操作は失敗します。システムが検証するプロパティには、プライマリキー、インデックス、および非 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 consistent 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 の制限が撤廃され、コンピューティングに使用されるメモリは各ノードに動的に割り当てられるようになりました。ワーカーノードのメモリ使用量は、Hologres バックエンドで継続的に監視されます。これにより、ノードのメモリ使用量に基づいて、コンピューティングに使用されるメモリをノードに動的に割り当て、クエリの成功を確保できます。実行計画が有効であるにもかかわらず、Hologres V1.1.24 以降でクエリを実行した際に、メモリ使用量が上限を超えるというエラーメッセージが返された場合、SQL ステートメントを最適化するか、Hologres インスタンスをスケールアップする必要があります。

説明

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

V1.1(2021 年 10 月)

  • デフォルトで自動アナライズ機能が有効化されます。

    自動アナライズ機能は Hologres V0.10 で導入されました。この機能は、オンラインユーザーによって検証され、本番環境で安定していることが確認されています。Hologres V1.1 では、デフォルトで自動アナライズ機能が有効化されます。V1.1 にアップグレードされた Hologres インスタンスでは、自動アナライズ機能のステータスは変更されません。Hologres V1.1 で作成された新規インスタンスでは、デフォルトで自動アナライズ機能が有効化されます。関連するパラメーター名も Hologres V1.1 で変更されています。以下の表に変更内容を示します。

    元のパラメーター名

    新しいパラメーター名

    デフォルト値

    hg_experimental_enable_start_auto_analyze_worker

    hg_enable_start_auto_analyze_worker

    on

    自動アナライズ機能の使用方法については、「ANALYZE および AUTO ANALYZE」をご参照ください。

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

    リシャーディング機能は Hologres V0.10 で導入されました。この機能は、オンラインユーザーによって検証され、本番環境で安定していることが確認されています。Hologres 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 外部テーブルへの高速アクセスのためのエンジンが変更されました。

    MaxCompute 外部テーブルへの高速アクセスのための新エンジンは Hologres V0.10 で導入されました。このエンジンは、パフォーマンスを 30% 以上向上させます。このエンジンは、オンラインユーザーによって検証され、本番環境で安定していることが確認されています。Hologres V1.1 では、この新エンジンが MaxCompute 外部テーブルへの高速アクセスのデフォルトエンジンとして使用されます。V1.1 にアップグレードされた Hologres インスタンスでは、MaxCompute 外部テーブルへの高速アクセスのためのエンジンは変更されません。Hologres V1.1 で作成された新規インスタンスでは、新エンジンがデフォルトエンジンとして使用されます。関連するパラメーター名も Hologres 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 です。これは、クエリでスキャンできるパーティションの最大数を示します。

    hg_experimental_enable_write_maxcompute

    なし

    Hologres V1.1 では、デフォルト値は on です。on の値は、データを MaxCompute に書き戻すことができることを意味します。詳細については、「MaxCompute へのデータのエクスポート」をご参照ください。

    パラメーターの詳細については、「MaxCompute 外部テーブルのクエリパフォーマンスの最適化」をご参照ください。

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

    Hologres V1.1 より前のバージョンでは、pg_stat_activity テーブルは単一 FE ノードのアクティブな接続のステータスのみを記録していました。これにより、アクティブなクエリの確認および処理が不便でした。Hologres V1.1 では、pg_stat_activity テーブルはすべての FE ノードのアクティブな接続のステータスを記録します。pg_stat_activity テーブルを使用したアクティブなクエリの管理方法については、「クエリの管理」をご参照ください。

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

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

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

    idle_in_transaction_session_timeout パラメーターは、トランザクションがアイドル状態に入った後のタイムアウト期間を指定します。このパラメーターを設定しない場合、タイムアウトしたトランザクションはデフォルトでロールバックされません。その結果、クエリ中にデッドロックが発生する可能性があります。Hologres V1.1 では、idle_in_transaction_session_timeout パラメーターのデフォルト値が 10 分に設定されました。詳細については、「クエリの管理」をご参照ください。