問題の説明:
最近 doris を勉強していて、今日動的パーティション テーブルを作成しました。テーブル作成ステートメントの構成パラメーターは次のとおりです。
PROPERTIES(
"dynamic_partition.enable" = "true",
"dynamic_partition.time_unit" = "DAY",
"dynamic_partition.end" = "3",
"dynamic_partition.prefix" = "p",
"dynamic_partition.buckets" = "2",
"replication_allocation" = "tag.location.default: 1"
);
"dynamic_partition.end" = "3" パラメータは 3 に設定されており、dynamic_partition.start パラメータは設定されていないため、テーブルが構築された後、次のコマンドを実行します。
SHOW PARTITIONS FROM ods_test_d
現在のパーティション数を次のように確認します。
今日は 20230720 であり、これらのパーティションはパラメーター ルールに従って生成されました。
2つのデータを自由に挿入しても問題ないので、20230724というデータを作成します。挿入するとエラーが報告されます。エラーは次のとおりです。
SQL 错误 [5025] [HY000]: Insert has filtered data in strict mode, tracking_url=
このパスを開くと、以下に示すように、テーブルにそのようなパーティションが存在しないことがエラーの原因であることがわかります。
突然の気づき!!!!
結論は:
Doris 動的パーティション テーブルは、挿入されたデータの動的パーティション キーの値に基づいて対応するパーティションを追加しません。代わりに、パラメーター "dynamic_partition.end" = " の構成に基づいて、次の N 日間のパーティションを毎日作成します。ここでの構成は 3 なので、今日は 20230720 ~ 20230723 のパーティションが作成されました。 20230724 のパーティションは明日まで作成されません。明日作成されるかどうかを確認します。
私のようなバカはいますか/(ㄒoㄒ)/~~
Doris 公式ドキュメントのアドレスを添付します。
================================================= =======================
追記
確かに翌日には 20230724 のパーティションが自動的に作成されました。