MySQL实现条件唯一性 在Oracle中可以使用函数索引来实现,例如:create unique index xpto_table_idx1 on xpto_table(case when status_x <>5 then obj_x else null end);当status_x<>5时,obj_x的值唯一,否则可以重复。在MySQL中不支持这样的功能,但可以通过虚拟列来实现。看下面一个简单例子。需求:表t1有a、b、c三列,a为主键,仅当t1.b=1时,t1.c的值唯一。实现:
RedisJSON安装 1. 前提redis 6.0及以上版本2. 下载下载地址:https://redis.com/redis-enterprise-software/download-center/modules/选择版本下载文件,如rejson.Linux-rhel7-x86_64.2.0.8.zip3. 加载在redis配置文件中,添加下面一行,加载解压后的rejson.so文件loadmodule /home/redis/rejson.so4. 验证启动redis,验证加载模块sudo
文本文件清洗入库(MySQL)一例 一、需求 有一批文本文件如下:numt_qe_0411.txtnumt_qe_0412.txtnumt_qe_0413.txtnumt_qe_0414.txt... 每个文件的内容格式如下:9435446,问题1:,答案19575177,问题2? ,答案29575177,问题3? ,答案3... 可能存在以下几种情况:1. 文件中有空行2. 行中可能存在Tab符3. 可能存在错误折行的情况,如:9594287,您的性别:,男9...
使用redis-dump-go导出数据 1. 下载https://github.com/yannh/redis-dump-go/releases/download/v0.7.0/redis-dump-go-linux-386.tar.gz2. 解压tar -zxvf redis-dump-go-linux-386.tar.gz3. 导出redis-dump-go -port 36380 -db 0 -filter u_l_his_new* -output commands -n 12 > u_l_his_new.txt4.
MySQL中查询哪些存储代码中写了IP地址 select * from information_schema.routines where routine_definition regexp '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$';select * from information_schema.triggers where action_statement regexp '^((25[0-5]|2[0.
用户留存率SQL题 原文:牛客每个人最近的登录日期(五)_牛客题霸_牛客网-- 方法一select t0.date,ifnull(round(count(distinct t2.user_id)/(count(t1.user_id)),3),0)from(select datefrom logingroup by date) t0left join(select user_id,min(date) as datefrom logingroup by user_id)t1on t0.date=
MySQL监控脚本 mysqld_monitor.sh#!/bin/bash#v0.1 process_list long_query slave_copy_time errorlog#v0.2 slave_copy_status#v0.3 deadlock passwd=123456user=monitorcmd1='select count(*) from information_schema.processlist\G'cmd2="select count(*) from information_sc
MySQL复制状态检查脚本 sql_slave_skip_1.sh#!/bin/bashsource ~/.bashrcSlave_IO_Running_S=$(mysql -uroot -p123456 -S /data1/3306/mysqldata/mysql.sock -e "show slave status\G" | grep -Po '(?<=Slave_IO_Running: )(?:.*)')Slave_SQL_Running_S=$(mysql -uroot -p123456 -S /data
MySQL异常捕获简单示例 create table tbl1 (a int primary key);create table error_log ( id bigint(20) not null auto_increment, error_code varchar(50) default null, error_message varchar(500) default null, routine_name varchar(50) default null, create_time ti.
一个有趣的MySQL拆分字符串需求 需求:用sql把一个字段中的中文和英文字符串拆分开来例如:“魏派牌CC6460AE04A” =》 “魏派牌” “CC6460AE04A”“梅赛德斯-奔驰牌BJ6457H” =》 “梅赛德斯-奔驰牌” “BJ6457H”“博斯特A4121988CC小轿车” =》 “博斯特” “A4121988CC小轿车”“发现4SALAN2F6” =》 “发现” “4SALAN2F6”实现:SELECT a, SUBSTR(a, 1, b - 1) s1...
哨兵模式的redis修改IP脚本 change_to_intranet_ip_6.sh#!/bin/bashget_char(){ SAVEDSTTY=`stty -g` stty -echo stty cbreak dd if=/dev/tty bs=1 count=1 2> /dev/null stty -raw stty echo stty $SAVEDSTTY}# 1. 检查哨兵状态echo -e "检查当前哨兵状态"sudo -u redi
MySQL performance_schema 常用性能诊断查询 --1、哪类的SQL执行最多?SELECT DIGEST_TEXT,COUNT_STAR,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest ORDER BY COUNT_STAR DESC--2、哪类SQL的平均响应时间最多?SELECT DIGEST_TEXT,AVG_TIMER_WAIT FROM events_statements_summary_by_digest ORDER BY AVG_TIMER_WAIT DES.
MySQL 8用一句select打印日历 set lc_time_names='zh_cn';select case when (new_yweek = min(new_yweek) over(partition by mon order by new_yweek)) then mon_name else '' end '月份', new_yweek '年中周', row_number() over(partition by mon order by new_yweek) '月中周', cast(ifn.
Greenplum 实时数据仓库实践(10)——集成机器学习库MADlib 目录10.1 MADlib基本概念10.1.1 MADlib是什么10.1.2 MADlib的设计思想10.1.3 MADlib的工作原理10.1.4 MADlib的执行流程10.1.5 MADlib架构10.2 MADlib的功能10.2.1 MADlib支持的模型类型10.2.2 MADlib的主要功能模块10.3 MADlib的安装与卸载10.3.1 确定安装平台10.3.2 安装MADlib10.3.3 卸载MADlib10.4 MADlib示
Greenplum 实时数据仓库实践(9)——Greenplum监控与运维 目录9.1 权限与角色管理9.1.1 Greenplum中的角色与权限9.1.2 管理角色及其成员9.1.3 管理对象权限9.1.4 口令加密9.2 数据导入导出9.2.1 file协议及其外部表9.2.2 gpfdist协议及其外部表9.2.3 基于Web的外部表9.2.4 外部表错误处理9.2.5 使用gpload导入数据9.2.6 使用COPY互拷数据9.2.7 导出数据9.2.8 格式化数据文件9.3 性能优化9.3.1 常用优化手段
Greenplum 实时数据仓库实践(8)——事实表技术 目录8.1 事实表概述8.2 周期快照8.3 累积快照8.4 无事实的事实表8.5 迟到的事实8.6 累积度量小结 上一篇里介绍了几种基本的维度表技术,并用示例演示了每种技术的实现过程。本篇说明多维数据仓库中常见的事实表技术。我们将讲述五种基本事实表扩展技术,分别是周期快照、累积快照、无事实的事实表、迟到的事实和累积度量。和讨论维度表一样,也会从概念开始认识这些技术,继而给出常见的使用场景,最后以销售订单数据仓库为例,给出实现代码和测试过程。8.1 事实表概...
Greenplum 实时数据仓库实践(7)——维度表技术 目录7.1 增加列7.2 维度子集7.3 角色扮演维度7.4 层次维度7.4.1 固定深度的层次7.4.2 多路径层次7.4.3 参差不齐的层次7.5 退化维度7.6 杂项维度7.7 维度合并7.8 分段维度小结 前面章节中,我们实现了实时多维数据仓库的基本功能,如使用Canal和Kafka实现实时数据同步,定义Greenplum rule执行实时数据装载逻辑等。本篇将继续讨论常见的维度表技术。 我们以最简单的“增加列”开始...
Greenplum 实时数据仓库实践(6)——实时数据装载 目录6.1 建立数据仓库示例模型6.1.1 业务场景1. 操作型数据源2. 销售订单数据仓库模型设计6.1.2 建立数据库表1. 在MySQL主库中创建源库对象并生成测试数据2. 在Greenplum中创建目标库对象6.1.3 生成日期维度数据6.2 初始装载6.2.1 数据源映射6.2.2 确定SCD处理方法6.2.3 实现代理键6.2.4 执行初始装载1. 装载RDS模式的表2. 装载TDS模式的表3. 验证数据6.3 实时装载6.
Greenplum 实时数据仓库实践(5)——实时数据同步 目录5.1 数据抽取方式5.1.1 基于源数据的CDC5.1.2 基于触发器的CDC5.1.3 基于快照的CDC5.1.4 基于日志的CDC5.2 MySQL数据复制5.2.1 复制的用途5.2.2 二进制日志5.2.3 复制步骤5.3 使用Kafka5.3.1 Kafka基本概念1. 消息和批次2. 主题与分区3. 生产者和消费者4. broker和集群5.3.2 Kafka消费者与分区5.4 选择主题分区数5.4.1 使用单分区.
Greenplum 实时数据仓库实践(4)——Greenplum安装部署 目录4.1 平台需求4.1.1 操作系统4.1.2 硬件和网络1. CPU主频与核数2. 内存容量3. 内联网络4. RAID卡性能5. 磁盘配置4.1.3 文件系统4.2 容量评估4.2.1 可用磁盘空间4.2.2 用户数据容量4.2.3 元数据和日志空间需求4.2.4 RAID划分最佳实践4.3 操作系统配置4.3.1 安装操作系统4.3.2 禁用SELinux和防火墙4.3.3 操作系统推荐配置1. 设置主机名2. 设置系