diff --git a/docs/nbi/cm/AMF-NRM(V1.1.5)-Company-Version00.xlsx b/docs/nbi/cm/AMF-NRM(V1.1.5)-Company-Version00.xlsx new file mode 100755 index 0000000..c0f7f88 Binary files /dev/null and b/docs/nbi/cm/AMF-NRM(V1.1.5)-Company-Version00.xlsx differ diff --git a/docs/nbi/cm/PCF-NRM(V1.1.4)-Company-Version00.xlsx b/docs/nbi/cm/PCF-NRM(V1.1.4)-Company-Version00.xlsx new file mode 100755 index 0000000..accabd6 Binary files /dev/null and b/docs/nbi/cm/PCF-NRM(V1.1.4)-Company-Version00.xlsx differ diff --git a/docs/nbi/cm/SMF-NRM(V1.2.1)-Company-Version00.xlsx b/docs/nbi/cm/SMF-NRM(V1.2.1)-Company-Version00.xlsx new file mode 100755 index 0000000..41560fd Binary files /dev/null and b/docs/nbi/cm/SMF-NRM(V1.2.1)-Company-Version00.xlsx differ diff --git a/docs/nbi/cm/UDM-NRM(V1.2.2)-Company-Version00.xlsx b/docs/nbi/cm/UDM-NRM(V1.2.2)-Company-Version00.xlsx new file mode 100755 index 0000000..12dfcfb Binary files /dev/null and b/docs/nbi/cm/UDM-NRM(V1.2.2)-Company-Version00.xlsx differ diff --git a/docs/nbi/cm/UPF-NRM(V1.2.1)-Company-Version00.xlsx b/docs/nbi/cm/UPF-NRM(V1.2.1)-Company-Version00.xlsx new file mode 100755 index 0000000..ecdc39c Binary files /dev/null and b/docs/nbi/cm/UPF-NRM(V1.2.1)-Company-Version00.xlsx differ diff --git a/docs/nbi/AMF-PM(V1.1.5)-Company-Version00.xlsx b/docs/nbi/pm/AMF-PM(V1.1.5)-Company-Version00.xlsx similarity index 100% rename from docs/nbi/AMF-PM(V1.1.5)-Company-Version00.xlsx rename to docs/nbi/pm/AMF-PM(V1.1.5)-Company-Version00.xlsx diff --git a/docs/nbi/PCF-PM(V1.1.4)-Company-Version00.xlsx b/docs/nbi/pm/PCF-PM(V1.1.4)-Company-Version00.xlsx similarity index 100% rename from docs/nbi/PCF-PM(V1.1.4)-Company-Version00.xlsx rename to docs/nbi/pm/PCF-PM(V1.1.4)-Company-Version00.xlsx diff --git a/docs/nbi/SMF-PM(V1.2.1)-Company-Version00.xlsx b/docs/nbi/pm/SMF-PM(V1.2.1)-Company-Version00.xlsx similarity index 100% rename from docs/nbi/SMF-PM(V1.2.1)-Company-Version00.xlsx rename to docs/nbi/pm/SMF-PM(V1.2.1)-Company-Version00.xlsx diff --git a/docs/nbi/UDM-PM(V1.2.2)-Company-Version00.xlsx b/docs/nbi/pm/UDM-PM(V1.2.2)-Company-Version00.xlsx similarity index 100% rename from docs/nbi/UDM-PM(V1.2.2)-Company-Version00.xlsx rename to docs/nbi/pm/UDM-PM(V1.2.2)-Company-Version00.xlsx diff --git a/docs/nbi/UPF-PM(V1.2.1)-Company-Version00.xlsx b/docs/nbi/pm/UPF-PM(V1.2.1)-Company-Version00.xlsx similarity index 100% rename from docs/nbi/UPF-PM(V1.2.1)-Company-Version00.xlsx rename to docs/nbi/pm/UPF-PM(V1.2.1)-Company-Version00.xlsx diff --git a/docs/nbi/generate_ne_pm.py b/docs/nbi/pm/generate_ne_pm.py similarity index 100% rename from docs/nbi/generate_ne_pm.py rename to docs/nbi/pm/generate_ne_pm.py diff --git a/docs/nbi/pm_generator.go b/docs/nbi/pm/pm_generator.go similarity index 100% rename from docs/nbi/pm_generator.go rename to docs/nbi/pm/pm_generator.go diff --git a/docs/nbi/protocol.md b/docs/nbi/pm/protocol.md similarity index 100% rename from docs/nbi/protocol.md rename to docs/nbi/pm/protocol.md diff --git a/docs/reference/gen-rand-cdr.sql b/docs/reference/gen-rand-cdr.sql new file mode 100644 index 0000000..f99a047 --- /dev/null +++ b/docs/reference/gen-rand-cdr.sql @@ -0,0 +1,66 @@ +-- 1. 建辅助数字表 +DROP TABLE IF EXISTS tmp_num_100; +CREATE TABLE tmp_num_100 (n TINYINT UNSIGNED PRIMARY KEY); +INSERT INTO tmp_num_100(n) +SELECT a.n + b.n AS n FROM ( + SELECT 0 n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 + UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 +) a +CROSS JOIN ( + SELECT 0 n UNION ALL SELECT 10 UNION ALL SELECT 20 UNION ALL SELECT 30 UNION ALL SELECT 40 + UNION ALL SELECT 50 UNION ALL SELECT 60 UNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT 90 +) b +ORDER BY a.n + b.n; + +DROP TABLE IF EXISTS tmp_num_500; +CREATE TABLE tmp_num_500 (n SMALLINT UNSIGNED PRIMARY KEY); +INSERT INTO tmp_num_500(n) +SELECT t.n FROM ( + SELECT @r:=@r+1 n + FROM (SELECT 0 FROM tmp_num_100) a, + (SELECT 0 FROM tmp_num_100) b, + (SELECT @r:=-1) init + LIMIT 500 +) t; + +-- 2. 目标表(若未建) +-- CREATE TABLE cdr_event_smsc ( +-- id BIGINT AUTO_INCREMENT PRIMARY KEY, +-- ne_type VARCHAR(16), +-- ne_name VARCHAR(64), +-- rm_uid VARCHAR(64), +-- `timestamp` BIGINT, +-- cdr_json JSON, +-- created_at DATETIME, +-- tenant_id VARCHAR(64) +-- ) ENGINE=InnoDB; + +-- 3. 关闭一些约束提高插入速度(可选) +SET autocommit = 0; +SET unique_checks = 0; +SET foreign_key_checks = 0; + +-- 4. 插入 500 万(100 * 100 * 500) +-- 随机时间:过去一年内的任意秒(不均匀) +SET @start_ts = UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 365 DAY)); +SET @range_sec = 365 * 24 * 3600; + +INSERT INTO cdr_event_smsc + (ne_type, ne_name, rm_uid, `timestamp`, cdr_json, created_at) +SELECT + 'SMSC' AS ne_type, + 'SMSC_001' AS ne_name, + '4400HXSMSC001' AS rm_uid, + @start_ts + FLOOR(RAND()*@range_sec) AS `timestamp`, + '{\"calledParty\":\"15731123455\",\"callerParty\":\"18165338055\",\"cause\":28,\"recordType\":\"MTSM\",\"result\":0,\"serviceType\":\"Normal\",\"updateTime\":\"2025-08-18T11:09:52.703Z\"}' AS cdr_json, + NOW() AS created_at +FROM tmp_num_100 a +CROSS JOIN tmp_num_100 b +CROSS JOIN tmp_num_500 c; + +COMMIT; + +-- 5. 恢复 +SET unique_checks = 1; +SET foreign_key_checks = 1; +SET autocommit = 1;