SQL在网优中的应用--45G外部核查
共 21621字,需浏览 44分钟
·
2024-03-26 17:30
点击上方蓝字关注「 网优小兵玩Python 」
◆ ◆ ◆
网优日常工作中,邻区关系中的外部信息一致性核查与修正是确保切换性能的基础保障,该项工作主要涉及到LTE系统中的4G外部信息(TAC、频点、PCI)、5G外部信息(TAC、频点、PCI)核查修正,NR系统中的4G外部信息(TAC、频点、PCI)、5G外部信息(TAC、SSB频点、PCI)核查修正。就当前各地市网络规模来看,各外部信息数目在百万级别左右,通过EXCEL软件的VLOOKUP函数进行匹配核查,普通的办公电脑对单个外部信息核查一次所需时间在30分钟左右,时效性较差。应用SQL技术进行该项工作,时间粒度可压缩到秒级。
部署教程
本工 以Mysql + Navicat两个工具部署工作环境。Mysql为数据库工作,Navicat为连接管理数据库的工具,两个工具的官方下载链接如下(使用教程可在网上查找):
Mysql下载地址:https://dev.mysql.com/downloads/mysql/
Navicat下载地址: https://www.navicat.com.cn/download/navicat-premiu
数据库建模,共计6张数据库表,各数据表的结构如下:
1、LTE工参表: lte_parameter_table
2、NR工参表:nr_parameter_table
3、LTE网络4G外部信息表:lte_lte_ex
4、LTE网络5G外部信息表:lte_nr_ex
5、NR网络4G外部信息表:nr_lte_ex
6、NR网络5G外部信息表:nr_nr_ex
4G站点外部信息核查修正SQL代码如下:
/*
1、4G外部信息中的频点核查修正
*/
SELECT
lle.bts_name AS '网元名',
lle.ex_enb_id AS '4G外部基站ID',
lle.ex_cell_id AS '4G外部小区ID',
lle.ex_freq AS '外部配置频点',
lp.freq AS '4G小区现网频点',
CONCAT( 'MOD EUTRANEXTERNALCELL:MCC="460",MNC="00",ENODEBID=', lle.ex_enb_id, ',CELLID=', lle.ex_cell_id, ',DLEARFCN=', lp.freq, ';{', lle.bts_name , '}' ) AS '修正脚本'
FROM
lte_parameter_table AS lp,
lte_lte_ex AS lle
WHERE
lle.ex_enb_id = lp.enb_id
AND lle.ex_cell_id = lp.cell_id
AND lle.ex_freq <> lp.freq;
/*
2、4G外部信息中的PCI核查修正
*/
SELECT
lle.bts_name AS '网元名',
lle.ex_enb_id AS '4G外部基站ID',
lle.ex_cell_id AS '4G外部小区ID',
lle.ex_pci AS '外部配置PCI',
lp.pci AS '4G小区现网PCI',
CONCAT( 'MOD EUTRANEXTERNALCELL:MCC="460",MNC="00",ENODEBID=', lle.ex_enb_id, ',CELLID=', lle.ex_cell_id, ',PHYCELLID=', lp.pci, ';{', lle.bts_name , '}' ) AS '修正脚本'
FROM
lte_parameter_table AS lp,
lte_lte_ex AS lle
WHERE
lle.ex_enb_id = lp.enb_id
AND lle.ex_cell_id = lp.cell_id
AND lle.ex_pci <> lp.pci;
/*
3、4G外部信息中的TAC核查修正
*/
SELECT
lle.bts_name AS '网元名',
lle.ex_enb_id AS '4G外部基站ID',
lle.ex_cell_id AS '4G外部小区ID',
lle.ex_tac AS '外部配置TAC',
lp.tac AS '4G小区现网TAC',
CONCAT( 'MOD EUTRANEXTERNALCELL:MCC="460",MNC="00",ENODEBID=', lle.ex_enb_id, ',CELLID=', lle.ex_cell_id, ',TAC=', lp.tac, ';{', lle.bts_name , '}' ) AS '修正脚本'
FROM
lte_parameter_table AS lp,
lte_lte_ex AS lle
WHERE
lle.ex_enb_id = lp.enb_id
AND lle.ex_cell_id = lp.cell_id
AND lle.ex_tac <> lp.tac;
/*
4、5G外部信息中的频点核查修正
*/
SELECT
lne.bts_name AS '网元名',
lne.ex_gnb_id AS '5G外部基站ID',
lne.ex_cell_id AS '5G外部小区ID',
lne.ex_freq AS '外部配置频点',
np.freq AS '5G小区现网频点',
CONCAT( 'MOD NREXTERNALCELL:MCC="460",MNC="00",GNODEBID=', lne.ex_gnb_id, ',CELLID=', lne.ex_cell_id, ',DLARFCN=', np.freq, ';{', lne.bts_name , '}' ) AS '修正脚本'
FROM
nr_parameter_table AS np,
lte_nr_ex AS lne
WHERE
lne.ex_gnb_id = np.gnb_id
AND lne.ex_cell_id = np.cell_id
AND lne.ex_freq <> np.freq;
/*
5、5G外部信息中的PCI核查修正
*/
SELECT
lne.bts_name AS '网元名',
lne.ex_gnb_id AS '5G外部基站ID',
lne.ex_pci AS '5G外部小区ID',
lne.ex_pci AS '外部配置PCI',
np.freq AS '5G小区现网PCI',
CONCAT( 'MOD NREXTERNALCELL:MCC="460",MNC="00",GNODEBID=', lne.ex_gnb_id, ',CELLID=', lne.ex_cell_id, ',PHYCELLID=', np.pci, ';{', lne.bts_name , '}' ) AS '修正脚本'
FROM
nr_parameter_table AS np,
lte_nr_ex AS lne
WHERE
lne.ex_gnb_id = np.gnb_id
AND lne.ex_cell_id = np.cell_id
AND lne.ex_pci <> np.pci;
/*
6、5G外部信息中的tac核查修正
*/
SELECT
lne.bts_name AS '网元名',
lne.ex_gnb_id AS '5G外部基站ID',
lne.ex_cell_id AS '5G外部小区ID',
lne.ex_tac AS '外部配置TAC',
np.tac AS '5G小区现网TAC',
CONCAT( 'MOD NREXTERNALCELL:MCC="460",MNC="00",GNODEBID=', lne.ex_gnb_id, ',CELLID=', lne.ex_cell_id, ',TAC=', np.tac, ';{', lne.bts_name , '}' ) AS '修正脚本'
FROM
nr_parameter_table AS np,
lte_nr_ex AS lne
WHERE
lne.ex_gnb_id = np.gnb_id
AND lne.ex_cell_id = np.cell_id
AND lne.ex_tac <> np.tac;
5G 站点外部信息核查修正 SQL 代码如 下:
/*
1、5G外部信息中的频点核查修正
*/
SELECT
nne.bts_name AS '网元名',
nne.ex_gnb_id AS '5G外部基站ID',
nne.ex_cell_id AS '5G外部小区ID',
nne.ex_ssb_freq AS '外部配置SSB频点',
np.ssb_freq AS '5G小区现网SSB频点',
CONCAT( 'MOD NREXTERNALNCELL:MCC="460",MNC="00",GNBID=', nne.ex_gnb_id, ',CELLID=', nne.ex_cell_id, ',SSBFREQPOS=', np.ssb_freq, ';{', nne.bts_name , '}' ) AS '修正脚本'
FROM
nr_parameter_table AS np,
nr_nr_ex AS nne
WHERE
nne.ex_gnb_id = np.gnb_id
AND nne.ex_cell_id = np.cell_id
AND nne.ex_ssb_freq <> np.ssb_freq;
/*
2、5G外部信息中的PCI核查修正
*/
SELECT
nne.bts_name AS '网元名',
nne.ex_gnb_id AS '5G外部基站ID',
nne.ex_cell_id AS '外部小区ID',
nne.ex_pci AS '外部配置PCI',
np.pci AS '5G小区现网PCI',
CONCAT( 'MOD NREXTERNALNCELL:MCC="460",MNC="00",GNBID=', nne.ex_gnb_id, ',CELLID=', nne.ex_cell_id, ',PHYSICALCELLID=', np.pci, ';{', nne.bts_name , '}' ) AS '修正脚本'
FROM
nr_parameter_table AS np,
nr_nr_ex AS nne
WHERE
nne.ex_gnb_id = np.gnb_id
AND nne.ex_cell_id = np.cell_id
AND nne.ex_pci <> np.pci;
/*
3、5G外部信息中的TAC核查修正
*/
SELECT
nne.bts_name AS '网元名',
nne.ex_gnb_id AS '5G外部基站ID',
nne.ex_cell_id AS '5G外部小区ID',
nne.ex_tac AS '外部配置TAC',
np.tac AS '5G小区现网TAC',
CONCAT( 'MOD NREXTERNALNCELL:MCC="460",MNC="00",GNBID=', nne.ex_gnb_id, ',CELLID=', nne.ex_cell_id, ',TAC=', np.tac, ';{', nne.bts_name , '}' ) AS '修正脚本'
FROM
nr_parameter_table AS np,
nr_nr_ex AS nne
WHERE
nne.ex_gnb_id = np.gnb_id
AND nne.ex_cell_id = np.cell_id
AND nne.ex_tac <> np.tac;
/*
4、4G外部信息中的频点核查修正
*/
SELECT
nle.bts_name AS '网元名',
nle.ex_enb_id AS '4G外部基站ID',
nle.ex_cell_id AS '4G外部小区ID',
nle.ex_freq AS '外部配置频点',
lp.freq AS '4G小区现网频点',
CONCAT( 'MOD GNBEUTRAEXTERNALCELL:MCC="460",MNC="00",ENODEBID=', nle.ex_enb_id, ',CELLID=', nle.ex_cell_id, ',DLEARFCN=', lp.freq, ';{', nle.bts_name , '}' ) AS '修正脚本'
FROM
lte_parameter_table AS lp,
nr_lte_ex AS nle
WHERE
nle.ex_enb_id = lp.enb_id
AND nle.ex_cell_id = lp.cell_id
AND nle.ex_freq <> lp.freq;
/*
5、4G外部信息中的PCI核查修正
*/
SELECT
nle.bts_name AS '网元名',
nle.ex_enb_id AS '4G外部基站ID',
nle.ex_cell_id AS '4G外部小区ID',
nle.ex_pci AS '外部配置PCI',
lp.pci AS '4G小区现网PCI',
CONCAT( 'MOD GNBEUTRAEXTERNALCELL:MCC="460",MNC="00",ENODEBID=', nle.ex_enb_id, ',CELLID=', nle.ex_cell_id, ',PHYSICALCELLID=', lp.pci, ';{', nle.bts_name , '}' ) AS '修正脚本'
FROM
lte_parameter_table AS lp,
nr_lte_ex AS nle
WHERE
nle.ex_enb_id = lp.enb_id
AND nle.ex_cell_id = lp.cell_id
AND nle.ex_pci <> lp.pci;
/*
6、4G外部信息中的TAC核查修正
*/
SELECT
nle.bts_name AS '网元名',
nle.ex_enb_id AS '4G外部基站ID',
nle.ex_cell_id AS '4G外部小区ID',
nle.ex_tac AS '外部配置TAC',
lp.tac AS '4G小区现网TAC',
CONCAT( 'MOD GNBEUTRAEXTERNALCELL:MCC="460",MNC="00",ENODEBID=', nle.ex_enb_id, ',CELLID=', nle.ex_cell_id, ',TAC=', lp.tac, ';{', nle.bts_name , '}' ) AS '修正脚本'
FROM
lte_parameter_table AS lp,
nr_lte_ex AS nle
WHERE
nle.ex_enb_id = lp.enb_id
AND nle.ex_cell_id = lp.cell_id
AND nle.ex_tac <> lp.tac;
应用效果
以某个地市的现网数据为例:全网LTE小区共计26872个、NR小区共计11007个,4-4外部信息共计66903条、4-5外部信息共计68217条、5-4外部信息共计479664条、5-5外部信息共计354445条。
4G 网络的 45G 外部信息核查修正共计花费 0.912 秒:
5G网络的 45G外部信息核查修正共计花费4.254秒 :
在数据量更大的情况下,比如一次核查一个省的数据,可以在数据建模阶段对数据库表建立索引以提升核查速度。
网优苦短,我用Python
网优小工具传送门