MySQL数据库中[列转行]一列转多行的问题
问题概述这个问题是使用ETL进行数据导入而产生的,需要使用Informatica对数据进行采集从ODS库导入到项目库中,且需要读取项目库中的配置,Informatica不涉及代码开发,只能读取表或者视图来配置参数,而项目库中的配置表则是用户在页面进行录入的,此时需要对页面录入的数据进行拼接给工具使用IN来使用,众所周知数据库中IN所传入的参数长度是有限制的,所以使用SELECT GROUP_CONCAT(CODE) FROM COUNTRY;的这种方式并不可取,会产生性能问题,为了解决这个现象,于是有了如下实现代码
测试数据SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for country
-- ----------------------------
DROP TABLE IF EXISTS `country`;
CREATE TABLE `country` (
`Code ...
Javascript 将数字金额转换为人民币汉字的方法
代码实现thousandthFormat (cellValue) {
// 将输入的数字进行千分位展示 例如:78,321,879
if (cellValue) {
return Number(cellValue)
.toFixed(2)
.replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
return $1 + ','
})
.replace(/\.$/, '')
}
}
代码实现 moneyConvert (money) {
// 以万元为单位
money = money * 10000
//汉字的数字
var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
var cnIntRadice = new Array("", "拾", "佰", "仟"); ...
Oracle PL/SQL 关于存储过程和存函数的使用
在Oracle中,存储过程和存储函数的概念其实是差不多的,一般地,我们都可以混合使用。只不过有的时候有的情况使用过程好一些,有的情况时候函数的时候好一些。下面会讲解在什么时机使用过程还是函数的。
存储过程语法create [or replace] procedure 过程名[(参数列表)]
as
PLSQL程序体;【begin…end;/】
存储函数语法create [or replace] procedure 过程名[(参数列表)]
as
PLSQL程序体;【begin…end;/】
使用场景我们发现过程与函数的区别其实是不大的,一般我们都可以用函数来实现的时候, 也可以使用过程来实现….
但是,总有些情况,使用函数比使用过程要好,使用过程比使用函数要好,那什么时候使用过程,什么时候使用函数呢
不难发现的是,函数是必定要有一个返回值的,当我们在调用的时候,接受返回值就直接获取就行了。
也就是说
当返回值只有一个参数的时候,那么就使用存储函数!
当返回值没有参数或者多于一个参数的时候,那么就使用过程!
Linux 升级 Python 至 3.x
CentOS6.5 中默认安装了 Python,版本比较低,为了使用新版 3.x,需要对旧版本进行升级。
由于很多基本的命令、软件包都依赖旧版本,比如:yum。所以,在更新 Python 时,建议不要删除旧版本(新旧版本可以共存)。
查看 Python 版本号当 Linux 上安装 Python 后(默认安装),只需要输入简单的命令,就可以查看 Python 的版本号:
python -V
# 或者
python --version
下载新版本进入 Python下载页面,选择需要的版本。
这里,我选择的版本是 3.6.3 。
进入 /usr/local/src 目录
cd /usr/local/src/
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
解压缩下载完成之后,进行解压缩:
tar -zxvf Python-3.6.3.tgz
配置、编译、安装安装openssl-devel(pip需要)
# yum install openssl-devel
进入解压缩后的目录,安装配置:
cd Python ...
Spring Boot项目在生产环境中的部署
除了使用java -jar运行Spring Boot应用程序外,还可以为Unix系统打包完全可执行的应用程序。 这使得在常见的生产环境中安装和管理Spring Boot应用程序非常容易。
Spring Boot 提供了一个tools工具,该工具可以方便的让我们将程序部署到生产环境,本文将结合官网与实际项目部署,给出一个完美的部署方案。
将应用程序打包为执行的jar包要使用Maven创建“完全可执行”的jar,请使用以下插件配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin> ...
Mac环境下切换jdk版本
打开终端
cd
vim .bash_profile
输入以下
export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`
export JAVA_HOME=$JAVA_8_HOME
alias jdk7="export JAVA_HOME=$JAVA_7_HOME"
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
Mac OSX 10.5+ 以后,官方建议$JAVA_HOME的设置用 /usr/libexec/java_home 代替也可以写绝对路径,通过echo $JAVA_HOME 查看JDK路径例如
export JAVA_7_HOME="/Library/J ...
搭建伪分布式Hadoop环境
搭建伪分布式Hadoop环境环境说明
CentOS 7.2 64 位
OpenJDK- 1.8
Hadoop- 2.7
安装 SSH 客户端安装SSH安装SSH:
sudo yum install openssh-clients openssh-server
安装完成后,可以使用下面命令进行测试:
ssh localhost
输入 root 账户的密码,如果可以正常登录,则说明SSH安装没有问题。测试正常后使用 exit 命令退出ssh。
免密登录配置免密码登录:
安装 JAVA 环境安装 JDK使用 yum 来安装1.7版本 OpenJDK:
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装完成后,输入 java 和 javac 命令,如果能输出对应的命令帮助,则表明jdk已正确安装。
配置 JAVA 环境变量执行命令:
编辑 ~/.bashrc,在结尾追加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0 ...
Docker - 基于Harbor搭建Docker私有镜像仓库
简介什么是Harbor
Harbor is an open source container image registry that secures images with role-based access control, scans images for vulnerabilities, and signs images as trusted. A CNCF Incubating project, Harbor delivers compliance, performance, and interoperability to help you consistently and securely manage images across cloud native compute platforms like Kubernetes and Docker.
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。
安装要求目标主机需要Docker和Docker Compose才能安装Harbor
硬件要求
资源
最低要求
官方推荐
CPU
2 CPU ...
基于CentOS使用Yum搭建简单K8s集群
环境简介
名称
版本
VirtualBox.app
6.0.10
Vagrant
2.2.3
CentOS
7.6
Etcd
3.3.11
Kubernetes
v1.5.2
虚拟机相关配置参考Vagrantfile.
环境准备Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.6.0"
boxes = [
{
:name => "k8s-master",
:eth1 => "192.168.11.21",
:mem => "1024",
:cpu => "1"
},
{
:name => "k8s-node1",
:eth1 => "192.168.11.22",
:mem => "1024",
:cpu => "1"
},
...
查询Oracle数据库中使用了全表扫描的SQL语句
Oracle排查全表扫描的语句SELECT *
FROM V$SQL_PLAN V
WHERE V.OPERATION = 'TABLE ACCESS'
AND V.OPTIONS = 'FULL'
AND V.OBJECT_OWNER='SYSTEM';
依据SQL ID找出相对应的 SQL TEXT
SELECT SQL_TEXT,
SQL_FULLTEXT,
SQL_ID,
LOADS,
FIRST_LOAD_TIME,
PLSQL_EXEC_TIME,
JAVA_EXEC_TIME,
ROWS_PROCESSED,
COMMAND_TYPE,
PARSING_USER_ID,
PARSING_SCHEMA_ID,
PARSING_SCHEMA_NAME,
KEPT_VERSIONS,
ADDRESS,
SERVICE,
MODULE,
...