SQL関連の問い合わせ
Q1: 非同期マテリアライズドビューの最終更新時刻を確認する方法
💡A1: 以下のクエリを実行してください:
SELECT * FROM mv_infos('database'='db_name') WHERE Name = 'mv_name' \G;
詳細は公式ドキュメントを参照:
https://doris.apache.org/zh-CN/docs/sql-manual/sql-functions/table-functions/mv_infos
Q2: テーブルレプリカ数の変更方法
💡A2: 以下の手順で実行:
1. ノード数 ≧ レプリカ数であること
2. 既存パーティション:ALTER TABLE tbl_name MODIFY PARTITION p1 SET ("replica_count" = "3");
3. 動的パーティション:ALTER TABLE db.tbl SET ("dynamic_partition.replica_count" = "3");
4. 非パーティションテーブル:ALTER TABLE db.tbl SET ("replica_count" = "3");
データ操作に関する課題
Q1: MySQLとDorisのVARCHAR長対応関係
💡A1: 変換式:
MySQL VARCHAR長 × 3 = Doris VARCHAR長
理由:MySQLのnは文字数、DorisのMはバイト長。UTF-8で最大3バイト/文字のため。
Q2: INSERT INTO SELECTの遅延調査方法
💡A2: 診断手順:
SET dry_run_query = true; -- テストモード有効化
1. dry_run_query有効時も遅延:クエリ最適化が必要
2. dry_run_queryで改善:データ転送/ストレージのボトルネック
※ 使用後はSET dry_run_query = false;で戻すこと
Q3: 複数レプリカ間のデータ不一致
💡A3: 対応フロー:
1. データ更新源を確認
2. SET use_fix_replica = 0; -- 固定レプリカ指定
3. 不整合タブレットを特定後:
ADMIN SET REPLICA STATUS PROPERTIES("tablet_id"="10001", "be_id"="20001", "status"="invalid");
運用管理の課題
Q1: BE起動エラーの対応
💡A1: 主な要因:
1. CPUアーキテクチャ不整合:be/lib/doris_be -v と uname -a を比較
2. 必須パラメータ変更(例:vm.max_map_count)
3. その他要因はログ追加で調査
Q2: 手動データ再分散方法
💡A2: タブレット移行APIで実行:
https://doris.apache.org/zh-CN/docs/dev/admin-manual/http-actions/be/tablet-migration
Q3: プロファイリングのグローバル有効化
💡A3: パフォーマンス影響のためセッション単位での使用を推奨:
SET enable_profile = true; -- セッション限定
Q4: ストレージ構成のベストプラクティス
💡A4: RAID不要。複数物理ディスクを個別マウント推奨。
設計原理の解説
Q: キーカラムの配置順序要件
💡A: 主な理由:
1. ソート効率向上
2. データ識別性の明確化
3. プレフィックスインデックスによる検索最適化
詳細:https://doris.apache.org/zh-CN/docs/data-table/index/index-overview/