鱼C论坛

 找回密码
 立即注册
查看: 156|回复: 13

llinux 脚本,数据库文件导出,并进行对比数据质量

[复制链接]
发表于 2024-7-18 16:03:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
DB_USER="postgres"
DB_PASSWORD="Csjd%951"
DB_HOST="192.168.101.1"
DB_NAME="commonframex"
date=$(date +'%Y-%m-%d')
SQL_QUERY="WITH count_table AS (SELECT 'datacollection.cm_lte_base' AS tables_name,        COUNT ( * ) AS COUNT FROM        datacollection.cm_lte_base UNION ALL
        SELECT
                'datacollection.cm_lte_sonpolicyeslte_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_sonpolicyeslte_zte UNION ALL
        SELECT
                'datacollection.cm_nr_gnodeb_hw',
                COUNT ( * )
        FROM
                datacollection.cm_nr_gnodeb_hw UNION ALL
        SELECT
                'datacollection.cm_lte_soncellpolicyfddlte_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_soncellpolicyfddlte_zte UNION ALL
        SELECT
                'datacollection.cm_lte_enbfunction_v2_hw',
                COUNT ( * )
        FROM
                datacollection.cm_lte_enbfunction_v2_hw UNION ALL
        SELECT
                'datacollection.cm_nr_managedelement_hw',
                COUNT ( * )
        FROM
                datacollection.cm_nr_managedelement_hw UNION ALL
        SELECT
                'datacollection.cm_lte_soncellpolicy_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_soncellpolicy_zte UNION ALL
        SELECT
                'datacollection.cm_nr_inventoryunitrru_hw',
                COUNT ( * )
        FROM
                datacollection.cm_nr_inventoryunitrru_hw UNION ALL
        SELECT
                'datacollection.cm_nr_carrierespolicy_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_carrierespolicy_zte UNION ALL
        SELECT
                'datacollection.cm_nr_channelespolicy_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_channelespolicy_zte UNION ALL
        SELECT
                'datacollection.cm_nr_dtxespolicy_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_dtxespolicy_zte UNION ALL
        SELECT
                'datacollection.cm_nr_gnodeb_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_gnodeb_zte UNION ALL
        SELECT
                'datacollection.cm_nr_base',
                COUNT ( * )
        FROM
                datacollection.cm_nr_base UNION ALL
        SELECT
                'datacollection.cm_lte_sonpolicyestdd_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_sonpolicyestdd_zte UNION ALL
        SELECT
                'datacollection.cm_nr_nrcell_hw',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrcell_hw UNION ALL
        SELECT
                'datacollection.cm_lte_enbfunction_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_enbfunction_zte UNION ALL
        SELECT
                'datacollection.cm_lte_enbfunction_v2_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_enbfunction_v2_zte UNION ALL
        SELECT
                'datacollection.cm_lte_soncellpolicytdd_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_soncellpolicytdd_zte UNION ALL
        SELECT
                'datacollection.cm_nr_nrcell_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrcell_zte UNION ALL
        SELECT
                'datacollection.cm_nr_gnodeb_nok',
                COUNT ( * )
        FROM
                datacollection.cm_nr_gnodeb_nok UNION ALL
        SELECT
                'datacollection.cm_nr_nrcell_nok',
                COUNT ( * ) AS COUNT
        FROM
                datacollection.cm_nr_nrcell_nok
        UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancelltdd_hw',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancelltdd_hw UNION ALL
        SELECT
                'datacollection.cm_lte_soncellpolicytddlte_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_soncellpolicytddlte_zte UNION ALL
        SELECT
                'datacollection.cm_nr_nrcelldu_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrcelldu_zte UNION ALL
        SELECT
                'datacollection.cm_nr_nrpgrp_nok',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrpgrp_nok UNION ALL
        SELECT
                'datacollection.cm_lte_sonpolicyes_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_sonpolicyes_zte UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancelltdd_v1_dt',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancelltdd_v1_dt UNION ALL
        SELECT
                'datacollection.cm_lte_inventoryunitrru_dt',
                COUNT ( * )
        FROM
                datacollection.cm_lte_inventoryunitrru_dt UNION ALL
        SELECT
                'datacollection.cm_lte_enbfunction_eric',
                COUNT ( * )
        FROM
                datacollection.cm_lte_enbfunction_eric UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancelltdd_eric',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancelltdd_eric UNION ALL
        SELECT
                'datacollection.cm_nr_gnodeb_eric',
                COUNT ( * )
        FROM
                datacollection.cm_nr_gnodeb_eric UNION ALL
        SELECT
                'datacollection.cm_nr_nrcell_eric',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrcell_eric UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancellfdd_v1_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancellfdd_v1_zte UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancelltdd_v1_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancelltdd_v1_zte UNION ALL
        SELECT
                'datacollection.cm_lte_eutranrelation_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutranrelation_zte UNION ALL
        SELECT
                'datacollection.cm_nr_eutrancellrelation_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_eutrancellrelation_zte UNION ALL
        SELECT
                'datacollection.cm_nr_nrcellrelation_zte',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrcellrelation_zte UNION ALL
        SELECT
                'datacollection.cm_lte_enbfuncation_dt',
                COUNT ( * )
        FROM
                datacollection.cm_lte_enbfuncation_dt UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancelltdd_dt',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancelltdd_dt UNION ALL
        SELECT
                'datacollection.cm_nr_gnodeb_dt',
                COUNT ( * ) AS COUNT
        FROM
                datacollection.cm_nr_gnodeb_dt UNION ALL
        SELECT
                'datacollection.cm_lte_inventoryunitshelf_eric',
                COUNT ( * )
        FROM
                datacollection.cm_lte_inventoryunitshelf_eric UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancelltdd_zte',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancelltdd_zte UNION ALL
        SELECT
                'datacollection.cm_nr_nrcell_dt',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrcell_dt UNION ALL
        SELECT
                'datacollection.cm_nr_nrcellduphysical_dt',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrcellduphysical_dt UNION ALL
        SELECT
                'datacollection.cm_nr_nrrruenergyconserve_dt',
                COUNT ( * )
        FROM
                datacollection.cm_nr_nrrruenergyconserve_dt UNION ALL
        SELECT
                'datacollection.cm_lte_enbfunction_nok',
                COUNT ( * )
        FROM
                datacollection.cm_lte_enbfunction_nok UNION ALL
        SELECT
                'datacollection.cm_lte_eutrancelltdd_nok',
                COUNT ( * )
        FROM
                datacollection.cm_lte_eutrancelltdd_nok UNION ALL
        SELECT
                'datacollection.cm_lte_psgrp_nok',
                COUNT ( * )
        FROM
                datacollection.cm_lte_psgrp_nok UNION ALL
        SELECT
                'energysavingrules.lte_zx_eutrancelltdd_v2',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_eutrancelltdd_v2 UNION ALL
        SELECT
                'energysavingrules.eutrancelltdd_nrm',
                COUNT ( * )
        FROM
                energysavingrules.eutrancelltdd_nrm UNION ALL
        SELECT
                'energysavingrules.lte_zx_enbfunction',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_enbfunction UNION ALL
        SELECT
                'energysavingrules.eutrancellfdd_nrm',
                COUNT ( * )
        FROM
                energysavingrules.eutrancellfdd_nrm UNION ALL
        SELECT
                'energysavingrules.nr_zx_nrcell',
                COUNT ( * )
        FROM
                energysavingrules.nr_zx_nrcell UNION ALL
        SELECT
                'energysavingrules.sa_hua_managedelement',
                COUNT ( * )
        FROM
                energysavingrules.sa_hua_managedelement UNION ALL
        SELECT
                'energysavingrules.sa_zx_carrierespolicy',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_carrierespolicy UNION ALL
        SELECT
                'energysavingrules.sa_hua_nrducellalgoswitch',
                COUNT ( * )
        FROM
                energysavingrules.sa_hua_nrducellalgoswitch UNION ALL
        SELECT
                'energysavingrules.lte_hua_eutrancelltdd_v2',
                COUNT ( * )
        FROM
                energysavingrules.lte_hua_eutrancelltdd_v2 UNION ALL
        SELECT
                'energysavingrules.lte_zx_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.sa_hua_nrducellpowersaving',
                COUNT ( * )
        FROM
                energysavingrules.sa_hua_nrducellpowersaving UNION ALL
        SELECT
                'energysavingrules.sa_zx_managedelement',
                COUNT ( * ) AS COUNT
        FROM
                energysavingrules.sa_zx_managedelement UNION ALL
        SELECT
                'energysavingrules.lte_hua_enbfunction',
                COUNT ( * )
        FROM
                energysavingrules.lte_hua_enbfunction UNION ALL
        SELECT
                'energysavingrules.lte_hua_enodebalgoswitch',
                COUNT ( * )
        FROM
                energysavingrules.lte_hua_enodebalgoswitch UNION ALL
        SELECT
                'energysavingrules.sa_hua_gnbdufunction',
                COUNT ( * )
        FROM
                energysavingrules.sa_hua_gnbdufunction UNION ALL
        SELECT
                'energysavingrules.sa_hua_nrcellduphysical',
                COUNT ( * )
        FROM
                energysavingrules.sa_hua_nrcellduphysical UNION ALL
        SELECT
                'energysavingrules.sa_hua_nrducelltrp',
                COUNT ( * )
        FROM
                energysavingrules.sa_hua_nrducelltrp UNION ALL
        SELECT
                'energysavingrules.sa_zx_antconfig',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_antconfig UNION ALL
        SELECT
                'energysavingrules.sa_zx_channelespolicy',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_channelespolicy UNION ALL
        SELECT
                'energysavingrules.sa_zx_dtxespolicy',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_dtxespolicy UNION ALL
        SELECT
                'energysavingrules.sa_zx_gnbdufunction',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_gnbdufunction UNION ALL
        SELECT
                'energysavingrules.sa_zx_nrcellduphysical',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_nrcellduphysical UNION ALL
        SELECT
                'energysavingrules.lte_hua_cellrfshutdown',
                COUNT ( * )
        FROM
                energysavingrules.lte_hua_cellrfshutdown UNION ALL
        SELECT
                'energysavingrules.lte_hua_cellshutdown',
                COUNT ( * )
        FROM
                energysavingrules.lte_hua_cellshutdown UNION ALL
        SELECT
                'energysavingrules.lte_hua_managedelement',
                COUNT ( * )
        FROM
                energysavingrules.lte_hua_managedelement UNION ALL
        SELECT
                'energysavingrules.lte_zx_managedelement',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_managedelement UNION ALL
        SELECT
                'energysavingrules.nr_hua_nrcell',
                COUNT ( * )
        FROM
                energysavingrules.nr_hua_nrcell UNION ALL
        SELECT
                'energysavingrules.sa_zx_powercontroldl',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_powercontroldl UNION ALL
        SELECT
                'energysavingrules.lte_hua_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.lte_hua_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.sa_zx_inventoryunitrru_jd',
                COUNT ( * )
        FROM
                energysavingrules.sa_zx_inventoryunitrru_jd UNION ALL
        SELECT
                'energysavingrules.cm_nr_base',
                COUNT ( * )
        FROM
                energysavingrules.cm_nr_base UNION ALL
        SELECT
                'energysavingrules.cm_lte_base',
                COUNT ( * ) AS COUNT
        FROM
                energysavingrules.cm_lte_base UNION ALL
        SELECT
                'energysavingrules.sa_hua_inventoryunitrru_jd',
                COUNT ( * )
        FROM
                energysavingrules.sa_hua_inventoryunitrru_jd UNION ALL
        SELECT
                'energysavingrules.lte_eric_cellsleepfunction',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_cellsleepfunction UNION ALL
        SELECT
                'energysavingrules.sa_eric_gnbdufunction',
                COUNT ( * )
        FROM
                energysavingrules.sa_eric_gnbdufunction UNION ALL
        SELECT
                'energysavingrules.lte_dt_enbfunction',
                COUNT ( * )
        FROM
                energysavingrules.lte_dt_enbfunction UNION ALL
        SELECT
                'energysavingrules.lte_dt_eutrancelltdd',
                COUNT ( * )
        FROM
                energysavingrules.lte_dt_eutrancelltdd UNION ALL
        SELECT
                'energysavingrules.lte_dt_eutrancelltdd_v2',
                COUNT ( * )
        FROM
                energysavingrules.lte_dt_eutrancelltdd_v2 UNION ALL
        SELECT
                'energysavingrules.lte_dt_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.lte_dt_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.lte_dt_managedelement',
                COUNT ( * )
        FROM
                energysavingrules.lte_dt_managedelement UNION ALL
        SELECT
                'energysavingrules.sa_dt_gnbdufunction',
                COUNT ( * )
        FROM
                energysavingrules.sa_dt_gnbdufunction UNION ALL
        SELECT
                'energysavingrules.sa_dt_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.sa_dt_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.lte_nok_enbfunction',
                COUNT ( * )
        FROM
                energysavingrules.lte_nok_enbfunction UNION ALL
        SELECT
                'energysavingrules.lte_nok_eutrancellfdd',
                COUNT ( * )
        FROM
                energysavingrules.lte_nok_eutrancellfdd UNION ALL
        SELECT
                'energysavingrules.lte_eric_managedelement_nrm',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_managedelement_nrm UNION ALL
        SELECT
                'energysavingrules.lte_eric_enbfunction',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_enbfunction UNION ALL
        SELECT
                'energysavingrules.lte_eric_eutrancellfdd',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_eutrancellfdd UNION ALL
        SELECT
                'energysavingrules.lte_eric_eutrancelltdd',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_eutrancelltdd UNION ALL
        SELECT
                'energysavingrules.lte_eric_eutrancelltdd_v2',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_eutrancelltdd_v2 UNION ALL
        SELECT
                'energysavingrules.lte_eric_featurestate',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_featurestate UNION ALL
        SELECT
                'energysavingrules.lte_eric_mimosleepfunction',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_mimosleepfunction UNION ALL
        SELECT
                'energysavingrules.lte_eric_optionalfeaturelicens',
                COUNT ( * ) AS COUNT
        FROM
                energysavingrules.lte_eric_optionalfeaturelicens UNION ALL
        SELECT
                'energysavingrules.sa_eric_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.sa_eric_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.sa_eric_managedelement_nrm',
                COUNT ( * )
        FROM
                energysavingrules.sa_eric_managedelement_nrm UNION ALL
        SELECT
                'energysavingrules.sa_eric_nrcelldu',
                COUNT ( * )
        FROM
                energysavingrules.sa_eric_nrcelldu UNION ALL
        SELECT
                'energysavingrules.lte_eric_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.lte_eric_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.sa_eric_nrcellduphysical',
                COUNT ( * )
        FROM
                energysavingrules.sa_eric_nrcellduphysical UNION ALL
        SELECT
                'energysavingrules.sa_dt_managedelement',
                COUNT ( * )
        FROM
                energysavingrules.sa_dt_managedelement UNION ALL
        SELECT
                'energysavingrules.sa_dt_nrcelldu',
                COUNT ( * )
        FROM
                energysavingrules.sa_dt_nrcelldu UNION ALL
        SELECT
                'energysavingrules.sa_dt_nrcellduphysical',
                COUNT ( * )
        FROM
                energysavingrules.sa_dt_nrcellduphysical UNION ALL
        SELECT
                'energysavingrules.sa_dt_nrrruenergyconserve',
                COUNT ( * )
        FROM
                energysavingrules.sa_dt_nrrruenergyconserve UNION ALL
        SELECT
                'energysavingrules.lte_nok_eutrancelltdd',
                COUNT ( * )
        FROM
                energysavingrules.lte_nok_eutrancelltdd UNION ALL
        SELECT
                'energysavingrules.lte_nok_eutrancelltdd_v2',
                COUNT ( * )
        FROM
                energysavingrules.lte_nok_eutrancelltdd_v2 UNION ALL
        SELECT
                'energysavingrules.lte_nok_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.lte_nok_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.lte_nok_managedelement',
                COUNT ( * )
        FROM
                energysavingrules.lte_nok_managedelement UNION ALL
        SELECT
                'energysavingrules.sa_nok_gnbcucpfunction',
                COUNT ( * )
        FROM
                energysavingrules.sa_nok_gnbcucpfunction UNION ALL
        SELECT
                'energysavingrules.sa_nok_gnbdufunction',
                COUNT ( * )
        FROM
                energysavingrules.sa_nok_gnbdufunction UNION ALL
        SELECT
                'energysavingrules.sa_nok_inventoryunitrru',
                COUNT ( * )
        FROM
                energysavingrules.sa_nok_inventoryunitrru UNION ALL
        SELECT
                'energysavingrules.sa_nok_managedelement',
                COUNT ( * )
        FROM
                energysavingrules.sa_nok_managedelement UNION ALL
        SELECT
                'energysavingrules.sa_nok_nrcelldu',
                COUNT ( * )
        FROM
                energysavingrules.sa_nok_nrcelldu UNION ALL
        SELECT
                'energysavingrules.lte_nok_psgrp',
                COUNT ( * )
        FROM
                energysavingrules.lte_nok_psgrp UNION ALL
        SELECT
                'energysavingrules.sa_nok_nrpgrp',
                COUNT ( * ) AS COUNT
        FROM
                energysavingrules.sa_nok_nrpgrp UNION ALL
        SELECT
                'energysavingrules.lte_zx_sonpolicyes',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_sonpolicyes UNION ALL
        SELECT
                'energysavingrules.lte_zx_sonpolicyeslte',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_sonpolicyeslte UNION ALL
        SELECT
                'energysavingrules.lte_zx_sonpolicyestdd',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_sonpolicyestdd UNION ALL
        SELECT
                'energysavingrules.lte_zx_soncellpolicy',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_soncellpolicy UNION ALL
        SELECT
                'energysavingrules.lte_zx_soncellpolicyfddlte',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_soncellpolicyfddlte UNION ALL
        SELECT
                'energysavingrules.lte_zx_soncellpolicytdd',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_soncellpolicytdd UNION ALL
        SELECT
                'energysavingrules.lte_zx_soncellpolicytddlte',
                COUNT ( * )
        FROM
                energysavingrules.lte_zx_soncellpolicytddlte
        ),
        total_count AS ( SELECT SUM ( COUNT ) AS total FROM count_table )
SELECT
        *
FROM
        count_table UNION ALL
SELECT
        '总数',
        total
FROM
        total_count;"
#
export PGPASSWORD=$DB_PASSWORD
explain_sql=`/usr/pgsql-14/bin/psql -U $DB_USER -p 22345 -h $DB_HOST -d $DB_NAME -c "$SQL_QUERY"`
echo "表名及统计数量
$explain_sql"
unset PGPASSWORD


将当前sql脚本导出成csv文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-18 16:04:37 | 显示全部楼层
哇,这个脚本真是有点长,看得我眼花缭乱了。不过没关系,让我们来搞定它!

首先,您想导出数据然后对比数据质量嘛?下面这个脚本可以帮助你实现这个任务。

### 第一步:编写一个Shell脚本

这个脚本会:
1. 执行SQL查询,导出查询结果到一个文件。
2. 对比两个日期的导出文件,查看是否有数据差异。
#!/bin/bash

# 数据库配置
DB_USER="postgres"
DB_PASSWORD="Csjd%951"
DB_HOST="10.227.244.24"
DB_NAME="commonframex"
DATE=$(date +'%Y-%m-%d')

# SQL查询
SQL_QUERY="WITH count_table AS (SELECT 'datacollection.cm_lte_base' AS tables_name, COUNT ( * ) AS COUNT FROM datacollection.cm_lte_base UNION ALL SELECT 'datacollection.cm_lte_sonpolicyeslte_zte', COUNT ( * ) FROM datacollection.cm_lte_sonpolicyeslte_zte UNION ALL ..."

# 生成文件名
OUTPUT_FILE="/path/to/your/directory/data_quality_${DATE}.txt"

# 导出数据到文件
PGPASSWORD=$DB_PASSWORD psql -U $DB_USER -h $DB_HOST -d $DB_NAME -c "$SQL_QUERY" > $OUTPUT_FILE

if [ $? -eq 0 ]; then
  echo "数据成功导出到 $OUTPUT_FILE"
else
  echo "数据导出失败"
  exit 1
fi

# 假设昨天的文件存在 /path/to/your/directory/data_quality_yesterday.txt
YESTERDAY_FILE="/path/to/your/directory/data_quality_$(date --date='yesterday' +'%Y-%m-%d').txt"

# 检查昨天的文件是否存在
if [ ! -f $YESTERDAY_FILE ]; then
  echo "昨天的数据文件不存在,无法进行对比."
  exit 1
fi

# 对比两个文件
DIFF_OUTPUT=$(diff $YESTERDAY_FILE $OUTPUT_FILE)

if [ -z "$DIFF_OUTPUT" ]; then
  echo "数据质量一致,没有差异."
else
  echo "数据有差异,请检查如下内容:"
  echo "$DIFF_OUTPUT"
fi

### 第二步:设置定时任务

你可能需要每天自动运行这个脚本,可以使用`cron`设置定时任务:
crontab -e

然后添加一行(假设你把脚本保存为`/path/to/your/script.sh`):
0 1 * * * /bin/bash /path/to/your/script.sh

这将会在每天凌晨1点执行一次脚本。记得修改脚本路径和输出文件路径哦。

完工!希望这能帮到您,如果还有其他问题或需要解释的部分,请随时问我~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-18 16:05:37 | 显示全部楼层
FishC 发表于 2024-7-18 16:04
哇,这个脚本真是有点长,看得我眼花缭乱了。不过没关系,让我们来搞定它!

首先,您想导出数据然后对比 ...

谢谢 ,我这边测试一下看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-18 16:05:50 | 显示全部楼层
被注册了怎么办 发表于 2024-07-18 16:05
谢谢 ,我这边测试一下看看


好的,祝你测试顺利!如果有任何问题或需要进一步的帮助,请随时告诉我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-18 16:47:34 | 显示全部楼层
FishC 发表于 2024-7-18 16:04
哇,这个脚本真是有点长,看得我眼花缭乱了。不过没关系,让我们来搞定它!

首先,您想导出数据然后对比 ...

导出文件 没有带日期
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-18 16:47:41 | 显示全部楼层


好的,鱼油,让我们为你解决这个问题,并加入日期。我们可以使用`psql`命令中的`\COPY`选项将查询结果直接导出到带日期的CSV文件中。 让我们来修改一下

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-18 16:49:05 | 显示全部楼层
FishC 发表于 2024-7-18 16:47
好的,鱼油,让我们为你解决这个问题,并加入日期。我们可以使用`psql`命令中的`\COPY`选项将查询结果 ...

导出的 .txt文件中没有带日期

# 生成文件名
OUTPUT_FILE="/path/to/your/directory/data_quality_${DATE}.txt"

# 导出数据到文件
PGPASSWORD=$DB_PASSWORD psql -U $DB_USER -h $DB_HOST -d $DB_NAME -c "$SQL_QUERY" > $OUTPUT_FILE
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-18 16:49:10 | 显示全部楼层
被注册了怎么办 发表于 2024-07-18 16:49
导出的 .txt文件中没有带日期

# 生成文件名
OUTPU ...


好的,鱼油,我们来改进一下您的脚本,使其在导出文件名中包含日期,并将结果导出为CSV格式。我们还会为您调整一下路径以确保生成的文件有正确的日期标签。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2024-7-23 10:41:26 | 显示全部楼层
FishC 发表于 2024-7-18 16:49
好的,鱼油,我们来改进一下您的脚本,使其在导出文件名中包含日期,并将结果导出为CSV格式。我们还会 ...


sh中 psql 判断一张表是否存在,如果存在则跳过,不存在则创建,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-23 10:41:36 | 显示全部楼层
被注册了怎么办 发表于 2024-07-23 10:41
sh中 psql 判断一张表是否存在,如果存在则跳过,不存 ...


好的,我们来处理这个需求!在Shell脚本中,你可以使用`psql`命令来检查表是否存在。如果表不存在,就创建它。下面是一个示例脚本,可以满足这个需求:
#!/bin/bash

# 数据库配置
DB_USER="postgres"
DB_PASSWORD="Csjd%951"
DB_HOST="192.168.101.1"
DB_NAME="commonframex"
TABLE_NAME="your_table_name" # 替换为你的表名

# 导出数据库密码
export PGPASSWORD=$DB_PASSWORD

# 检查表是否存在
TABLE_EXISTS=$(psql -U $DB_USER -h $DB_HOST -d $DB_NAME -t -c "SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = '$TABLE_NAME');")

if [[ $TABLE_EXISTS == *"t"* ]]; then
    echo "表 $TABLE_NAME 已存在,跳过创建."
else
    echo "表 $TABLE_NAME 不存在,正在创建..."
    psql -U $DB_USER -h $DB_HOST -d $DB_NAME -c "CREATE TABLE $TABLE_NAME (id SERIAL PRIMARY KEY, name VARCHAR(100));" # 根据需要修改表结构
    echo "表 $TABLE_NAME 创建成功."
fi

# 清理环境变量
unset PGPASSWORD

### 脚本解释:

1. **数据库配置**:设置数据库用户名、密码、主机和数据库名称。
2. **检查表是否存在**:使用查询`information_schema.tables`,检查表是否存在。
3. **条件判断**:
   - 如果表存在,输出相应信息并跳过创建步骤。
   - 如果表不存在,则执行`CREATE TABLE`语句创建表,并输出创建成功的消息。
4. **清理环境变量**:最后我们清理了密码,以防止泄漏。

### 注意事项:
- 确保将`TABLE_NAME`替换为你想要检查和创建的实际表名。
- 根据需要修改`CREATE TABLE`语句中的列定义。

运行这个脚本后,你就可以实现判断表是否存在,并根据结果创建表。如果有问题请随时问我!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-23 17:16:54 | 显示全部楼层
FishC 发表于 2024-7-23 10:41
好的,我们来处理这个需求!在Shell脚本中,你可以使用`psql`命令来检查表是否存在。如果表不存在,就 ...

如果  mysql数据库,一共128张表,table_1、table_2 . . . table_128,每张表分别按照时间存放数据,一天一张表,从 1、2、3、4、. . . . 128 ,128、1 、2 、3 、. . . . 128 然后开始循环,如何精准定位到当天使用的表是哪张
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-23 17:17:10 | 显示全部楼层
被注册了怎么办 发表于 2024-07-23 17:16
如果  mysql数据库,一共128张表,table_1、table_2 . ...


哇,鱼油,你的需求有点复杂,不过没关系,我们来搞定它!首先,我们需要确定今天是第几天,然后根据这个数字来决定使用哪个表。

### 脚本思路:

1. **计算今天是第几天**:可以通过`date`命令获取当前日期,然后将其转换为一年中的第几天。
2. **基于天数选择表**:使用这个天数去判断使用哪一张表。

### 示例脚本:
#!/bin/bash

# 计算今天是今年的第几天
DAY_OF_YEAR=$(date +%j)

# 由于你的表名是从table_1到table_128,取模操作来得到当天应该使用的表名
# 这里使用$((DAY_OF_YEAR % 128)) 来得到有效索引 (0-127),然后加1
INDEX=$(( (DAY_OF_YEAR - 1) % 128 + 1 ))

# 生成表名
TABLE_NAME="table_$INDEX"

echo "今天使用的表是: $TABLE_NAME"

# 你可以在这里添加你的数据库操作代码
# 比如:
# mysql -u your_user -p your_password -D your_database -e "SELECT * FROM $TABLE_NAME;"

### 解释:

1. `DAY_OF_YEAR=$(date +%j)`:获取今天是今年的第几天,结果范围为1到365(如果是闰年则为366)。
2. `INDEX=$(( (DAY_OF_YEAR - 1) % 128 + 1 ))`:通过取模操作计算出索引。注意这里需要减去1再取模,确保索引从1开始而不是0。
3. 然后生成所需的表名,例如`table_1`、`table_2`等。
4. 最后,你可以在输出表名之后继续进行你的数据库操作,例如查询、插入等等。

### 注意事项:

- 确保每月都有足够的表来存储数据,并且这些表的命名规则严格遵循`table_1`到`table_128`的格式。
- 根据年份不同,有可能需要考虑闰年的情况,但由于我们是取模128,所以实际上不会影响到表的循环使用。

希望这个脚本能帮助到你!如果还有其他问题,请随时问我!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-24 15:29:19 | 显示全部楼层
FishC 发表于 2024-7-23 17:17
哇,鱼油,你的需求有点复杂,不过没关系,我们来搞定它!首先,我们需要确定今天是第几天,然后根据这 ...

psql表字段插入默认值;
ALTER TABLE "examine"."check_examine" ALTER COLUMN percentage SET DEFAULT '检查数据是否为空';
设置完默认值,但是表插入新数据之后还是为空
"percentage" varchar(500) COLLATE "pg_catalog"."default",  是创建字段的类型有问题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-24 15:29:28 | 显示全部楼层
被注册了怎么办 发表于 2024-07-24 15:29
psql表字段插入默认值;
ALTER TABLE "examine"."che ...


在 PostgreSQL 中,设置字段的默认值后,如果你插入数据时未提供该字段的值,它应该会自动使用你设定的默认值。不过,可能导致你遇到问题的原因主要有以下几点:

### 1. 默认值的设置方法

你已经使用了以下命令来设置默认值:
ALTER TABLE "examine"."check_examine" ALTER COLUMN percentage SET DEFAULT '检查数据是否为空';

确保这个命令已成功执行并且没有错误消息。

### 2. 插入数据的方式

如果你在插入新数据时显式指定了 `percentage` 字段,那么即使设置了默认值,也会使用你提供的值。例如:
INSERT INTO "examine"."check_examine" (其他字段) VALUES (其他值);

在这种情况下,`percentage` 字段会使用默认值。如果在插入时不指定这个字段,那么它应该使用你的默认值。

### 3. 检查默认值是否生效

插入一条不包含 `percentage` 字段的记录,看看效果:
INSERT INTO "examine"."check_examine" (其他字段) VALUES (其他值);

然后查询一下插入的数据:
SELECT * FROM "examine"."check_examine";

### 4. 数据类型问题

根据你提供的信息,`percentage` 字段的类型是 `varchar(500)`。理论上说,这个类型不会影响默认值的使用。但如果你在插入数据时提供了 `NULL` 值(例如:`INSERT INTO ... VALUES (NULL)`),则也不会使用默认值。如果字段允许 `NULL`,并且你插入的数据是 `NULL`,那么结果将是 `NULL`。

### 解决方案

确保你的插入语句没有将 `percentage` 字段设置为 `NULL` 或者显式提供一个空值。以下是一个正确的插入示例:
INSERT INTO "examine"."check_examine" (其他字段) VALUES (其他值);

如果依然出现问题,请提供你的具体插入语句和表结构,我会尽量帮你排查问题!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-8 09:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表