- Docker部署项目,Mysql数据库总是宕机并且上传数据全部被删除了
lemonMann
开发过程中遇到的问题及解决方案数据库docker容器
刚开始排查原因我以为是一些内存占用问题的原因,后来查看数据库日志发现有多个异常ip尝试连接数据库并且也连接成功了随后数据库就被异常关闭了,然后我就重启容器远程连接数据库发现数据全没了,又在数据库中找到了如下内容:Allyourdataisbackedup.Youmustpay0.0080BTCtobc1q8r9zejh0ch22frh4pfdx2tlwf864sv42756yemIn48hours
- 小白也能安装:Ubuntu20.04 安装 RabbitMQ
Valishment
RabbitMQubunturabbitmqlinux阿里云java
开始我使用的是阿里云的轻量级服务器Ubuntu20.04系统镜像作为平台因为要使用RabbitMQ,想着步骤有点繁琐,写篇记一记安装基本依赖项更新源sudoapt-getupdate-y下载签名密钥和软件包所需的先决条件sudoapt-getinstallcurlgnupgdebian-keyringdebian-archive-keyring-y添加存储库签名密钥(指示易于信任由该密钥签名的软件
- ubuntu 安装rabbitmq
Spmal
ubuntulinuxruby
1、更新系统包sudoapt-update2、安装sudoapt-getinstallrabbitmq-server3、启动sudosystemctlstartrabbitmq-server4、查看状态sudosystemctlstatusrabbitmq-server5、启动管理界面sudorabbitmq-pluginsenablerabbitmq_management6、创建用户sudora
- MySQL——并发事务所带来的问题是什么?怎样去解决?MySQL的默认隔离级别是什么
lemonMann
MySQLmysql数据库
一、并发事务所带来的问题1、脏读:就是一个事务对数据进行查询操作时而另一个事物在修改这条数据但未提交,这时进行查询操作的事务就会读取到未提交的数据也就是脏数据2、不可重复读:事务A查询一次数据接着事务B修改了数据并且已提交事务A继续执行操作查询数据读到了不一样的数据。3、幻读:事务执行查询数据时不存在,插入数据时却报错,再次查询时还是在。原因在于事务A查询的时候数据库确实没有对应索引的数据但之后事
- ubuntu安装rabbitmq
一个铲屎官
linux安装教程rabbitmqubuntulinux
1、安装erlang由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlangsudoapt-getinstallerlang-nox2、安装Rabbitmq更新源sudoapt-getupdate安装sudoapt-getinstallrabbitmq-server启动、停止、重启、状态rabbitMq命令sudorabbitmq-serverstartsud
- springcloud的组件及作用
zzyh123456
springcloudspring后端
SpringCloud是一个用于构建分布式系统的工具集,它提供了一系列组件来简化微服务架构的开发和部署。以下是一些关键的SpringCloud组件及其作用:1.服务注册与发现Eureka:Eureka是SpringCloud中的核心组件之一,用于实现服务注册与发现。服务实例通过EurekaServer进行注册,消费者通过EurekaServer查询服务实例的地址,实现服务的自动发现和调用。Eure
- 【数据结构】清华出版社-刘小晶、朱蓉《数据结构渐进实践指导》第一章(个人手打版)
shixiexunnie
立志从0到c++全栈志数据结构算法c++
文章目录1_1_SqList.cpp1_1_LinkList.cpp1_1_SqList.cpp#include#include#definesql_size100//线性表初始分配空间的容量#definekuo10//线性表扩展空间的量#defineERROR0#defineOK1#defineOVERFLOW-2typedefintElemType;//数据元素的抽象数据类型,一般为intty
- 微服务架构中的负载均衡与服务注册中心(Nacos)
ღ᭄ꦿ࿐Never say never꧂
微服务架构微服务负载均衡springcloudspringboot后端java
1.负载均衡:解决实际业务问题1.1业务场景思考想象一个电子商务平台的微服务架构。我们有一个订单服务和多个用户服务实例。当订单服务需要调用用户服务时,它如何选择具体调用哪一台用户服务器?这就是负载均衡要解决的核心问题。1.2常用负载均衡算法及其业务影响1.2.1轮询(RoundRobin)原理:请求依次分配给每个服务器。业务影响:优点:实现简单,在服务器性能相近的情况下能达到较好的负载平衡。缺点:
- mysql 记录客户端ip_MySQL查看所有连接的客户端ip
辉萱0623
mysql记录客户端ip
有时候我们需要查看当前的mysql数据库中,有哪些客户端保持了连接,每个客户端分别保持了多少连接,可以使用下面的语句查询结果,可以直观的看到连接数。SELECTsubstring_index(host,':',1)AShostname,state,count(*)FROMinformation_schema.processlistGROUPBYstate,hostname;输出结果:mysql>S
- RocketMQ七、rocketMQ的网络通信模块
vinylon1022
RocketMQjavaspringcloudalibabaRocketMQ
关于rocketMQ的netty消息处理,实际上都在一个rocketmq-remoting模块中。不管是nameserver还是broker,从netty的handler开始是统一的结构。我们先以nameserver部分的跟踪一下。前一篇看到过netty的启动,我们回过来再看一下:@Overridepublicvoidstart(){...prepareSharableHandlers();Ser
- LVS 负载均衡-DR模式
敢敢936
lvs负载均衡服务器
一.DR模式直接路由:1.介绍:直接路由(DirectRouting):简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。直接路由,LVS默认模式,应用最广泛,通过请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的
- 微服务网关springcloud gateway整合nacos实现服务名负载均衡
程序猿20
开发框架微服务gateway负载均衡nacos
1.添加依赖com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery2.2.5.RELEASE2.添加配置spring:cloud:nacos:discovery:#服务注册地址server-addr:192.168.17.94:88483.将路由配置中的uri采用lb://服务名的形式进行配置spring:cloud:gatewa
- mysql记录到毫秒,记录到微妙
kingmax54212008
TIMESTAMP(3)与DATETIME(3)意思是保留3位毫秒数TIMESTAMP(6)与DATETIME(6)意思是保留6位毫秒数更多参考:https://blog.csdn.net/helloxiaozhe/article/details/83269152
- AppData\Local\JetBrains\IntelliJIdea2023.1\compile-server“): CreateProcess error=2, 系统找不到指定的文件。
fengdongnan
javapython服务器
1.报错详情Cannotrunprogram"D:\Develop\JDK17\bin\java.exe"(indirectory"C:\Users\86137\AppData\Local\JetBrains\IntelliJIdea2023.1\compile-server"):CreateProcesserror=2,系统找不到指定的文件。更换idea版本后原来使用jdk1.8的项目在项目配置
- Spring 事务隔离级别 事务传播特性 @Transactional使用
chudaxiakkk
spring的事务处理能力,本质上是数据库提供的。一个数据库具备事务,那么它必然支持4个特性,事务的4大特性原子性一致性隔离性持久性这4个特性,保证了数据库处理单事务是有保障的,正确的。更多应用处理场景下,是多事务并行出现的。同时,两个或两个以上的事务,操作同一张表,就会引起冲突。为了解决事务间交互产生的问题,数据库设置了4个隔离级别数据库的4大隔离级别readuncommitted(读未提交)B
- mybatis-plus使用sum,count,distinct等函数的方法
默 唁
JAVAmybatisjavamysql
mybatis-plus使用sum,count,distinct等函数的方法通过mybatis-plus实现以下sql查询SELECTCOUNT(DISTINCTuser_name)FROMuser_infoWHEREis_deleted=0ANDis_enabled=1mybatis-plus实现intcount=this.count(Wrappers.query().select("DISTI
- 云贝餐饮最新v3全开源独立版源码
kaui52066
phppythonjava开源开源软件
云贝餐饮v3连锁独立版本全新UI后台运营独立版无bug最新适配头像昵称接口有视频安装教程安装环境:PHP8.0MySQL5.6-5.7
- C#托管类型与非托管类型简析
_DRAGON__XU
C#c#开发语言
C#托管类型与非托管类型定义托管对象指的是.net可以自动进行回收的资源,主要是指托管对象在堆上分配的内存资源。托管资源的回收工作是不需要人工干预的,有.net运行库在合适的时间进行回收。当然,也可以使用GC.Collect手动回收。非托管对象指.net不知道如何回收的资源。例如文件、窗口、网络连接、数据库连接、画刷、图标等。这类资源,垃圾回收器在清理的时候会调用Object.Finalize()
- 为什么数据库和数据库连接池不采用类似java nio的IO多路复用技术使用一个连接来维护和数据库的数据交换?
harmful_sheep
springboot数据库javanio
类似java的nio相比于传统阻塞io模型来说,有效率高(特别在高并发情况下)和资源耗费相对较少的优点。传统的阻塞IO为了提高效率,需要创建一定数量的连接形成连接池,而nio仅需要一个连接即可(大部分情况下一个连接即可)。那么请问,数据库和数据库连接池为什么不采用这种方式?。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcatconnectionp
- crmeb java多商户外贸版系统搭建 java外贸版开发环境搭建
crmeb专业二开
crmebjavajava外贸版java外贸开源crmeb外贸版java多商户crmeb多商户外贸版
公测包运行公测包是打包好的java可执行文件直接在jdk1.8+环境下配置链接后,启动即可查看效果。下载源码包Java代码运行(运行基础环境和单商户的一致)运行条件jdk1.8maven环境3.3.xmysql5.7redis最新即可Node版本14+npm版本8.0+crmeb-admin管理端物业代码包,包含平台和商户,需要部署。crmeb-front商城代码包需要部署crmeb-common
- FunASR服务器部署(CPU+GPU)
之群害马
服务器eureka运维
自行下载funasr-cpu/gpu和asrmodel-deploy-cpu/gpu压缩包,官方都有cpu版运行:cd/home/user/data/AIModels/FunASR_docker/deploy_resourcessudodockerload-ifunasr-runtime-sdk-cpu-0.4.4_w_models_v0.2.1.tarcdasrmodel-deploy-cpus
- csghub安装(docker方式)
AR_xsy
docker容器运维
简单介绍:CSGHub是一个开源、可信的大模型资产管理平台,可帮助用户治理LLM和LLM应用生命周期中涉及到的资产官网部署安装exportSERVER_DOMAIN=$(ipaddrshow$(iprouteshowdefault|awk'/default/{print$5}')|grep'inet'|awk'{print$2}'|cut-d/-f1)exportSERVER_PORT=80doc
- C#+SqlSugar实现主从库读写分离
管理大亨
大数据专题c#数据库开发语言
在使用**SqlSugar**进行分库操作时,可以通过配置多个数据库连接,并根据业务逻辑动态切换数据库。以下是一个完整的分库示例,展示如何实现分库功能。---###**1.安装NuGet包**安装`SqlSugarCore`:```bashdotnetaddpackageSqlSugarCore```---###**2.分库场景**假设有两个数据库:-**主库**:用于写操作。-**从库**:用于
- 为什么不应该在事务中嵌套发送 MQ 消息和 RPC 调用?
后端javamq事务mysql
引言或许你曾写过这样的代码:@Transaction//开启事务publicvoidcraeteOrder(Orderorder){saveOrder(order);sendMQ(order);//或者是发送rpc}在一个事务内,向MySQL写入数据,接下来发送MQ或RPC调用。在大部分情况下,这样写好像没什么问题但如果此时我们下游执行反查操作,会发现找不到数据。更奇怪的是,这在业务的低谷期才会出
- Spring Boot 示例项目:从零开始构建 Web 应用
梦落青云
JAVAspringbootjava
一、项目概述本文档将指导您通过一个示例项目,了解如何使用SpringBoot框架构建一个简单的Web应用程序。该项目涵盖了从数据模型定义到控制器、服务层以及数据访问层的完整开发流程,帮助您快速掌握SpringBoot的基本使用方法。二、项目结构1.项目模块本示例项目分为以下几个主要模块:数据模型模块:负责定义与数据库表对应的实体类,使用JPA注解进行映射。控制器模块:处理客户端的HTTP请求,调用
- 实现Shell免密登录的详细指南
醉心编码
脚本基础shell脚本
实现Shell免密登录的详细指南前提条件步骤一:生成SSH密钥对步骤二:将公钥复制到远程服务器步骤三:配置SSH客户端(可选)步骤四:测试免密登录常见问题排查在使用Linux或Unix系统时,我们经常需要通过Shell访问远程服务器。通常,这种访问需要通过SSH(SecureShell)进行,每次连接时都需要输入用户名和密码,这不仅繁琐,而且在某些自动化场景下显得尤为不便。为了实现免密登录,我们可
- 使用PGVecto.rs在Postgres中进行向量数据库操作
dgay_hua
数据库python
使用PGVecto.rs在Postgres中进行向量数据库操作技术背景介绍向量数据库是一种用于存储和检索高维向量数据的数据库,非常适合应用于自然语言处理、推荐系统等领域。在这篇文章中,我们将介绍如何使用PGVecto.rs在Postgres中进行向量数据库操作。核心原理解析PGVecto.rs是基于Postgres的向量数据库实现,可以轻松地实现向量的存储和高效检索。它通过Postgres的扩展实
- Ollama+Fastgpt搭建属于自己的个人知识库
chaoshanarong
aiAI编程AI写作
一、安装dockerdocker下载网址:https://www.docker.com/products/docker-desktop/打开wsl:启用适用于Linux的Windows子系统以管理员身份运行WindowsPowerShell。运行以下命令:dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-L
- 基于 Debian 的系统(如 Ubuntu)上安装、启动和配置 SSH 服务的指令流
fanxbl957
linuxdebianubuntusshlinux
主要指令流和步骤简述:安装SSHdpkg-l|grepssh检查SSH服务是否已安装,如果输出中包含`openssh-server`,则说明SSH服务已经安装sudoapt-getinstallopenssh-server安装SSH服务ps-e|grepssh检查SSH服务是否已经启动,如果输出中包含`sshd`,则说明SSH服务已经启动sudoservicesshstart启动SSH服务sudo
- SQL注入技术详解与过滤绕过方法
Cyc1e
sql数据库web安全网络
SQL注入技术详解与过滤绕过方法1.什么是SQL注入?SQL注入(SQLInjection)是一种常见的Web安全漏洞,指攻击者将恶意的SQL代码插入到应用程序的输入字段中,并通过应用程序发送到数据库进行执行,进而对数据库进行未授权操作。其可能导致敏感数据泄露、篡改、删除等严重后果。1.1SQL注入的工作原理SQL注入的核心在于,攻击者通过操控输入字段,使服务器端的SQL查询语句发生意料之外的变化
- 辗转相处求最大公约数
沐刃青蛟
C++漏洞
无言面对”江东父老“了,接触编程一年了,今天发现还不会辗转相除法求最大公约数。惭愧惭愧!
为此,总结一下以方便日后忘了好查找。
1.输入要比较的两个数a,b
忽略:2.比较大小(因为后面要的是大的数对小的数做%操作)
3.辗转相除(用循环不停的取余,如a%b,直至b=0)
4.最后的a为两数的最大公约数
&
- F5负载均衡会话保持技术及原理技术白皮书
bijian1013
F5负载均衡
一.什么是会话保持? 在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下
- Object.equals方法:重载还是覆盖
Cwind
javagenericsoverrideoverload
本文译自StackOverflow上对此问题的讨论。
原问题链接
在阅读Joshua Bloch的《Effective Java(第二版)》第8条“覆盖equals时请遵守通用约定”时对如下论述有疑问:
“不要将equals声明中的Object对象替换为其他的类型。程序员编写出下面这样的equals方法并不鲜见,这会使程序员花上数个小时都搞不清它为什么不能正常工作:”
pu
- 初始线程
15700786134
暑假学习的第一课是讲线程,任务是是界面上的一条线运动起来。
既然是在界面上,那必定得先有一个界面,所以第一步就是,自己的类继承JAVA中的JFrame,在新建的类中写一个界面,代码如下:
public class ShapeFr
- Linux的tcpdump
被触发
tcpdump
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支 持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
实用命令实例
默认启动
tcpdump
普通情况下,直
- 安卓程序listview优化后还是卡顿
肆无忌惮_
ListView
最近用eclipse开发一个安卓app,listview使用baseadapter,里面有一个ImageView和两个TextView。使用了Holder内部类进行优化了还是很卡顿。后来发现是图片资源的问题。把一张分辨率高的图片放在了drawable-mdpi文件夹下,当我在每个item中显示,他都要进行缩放,导致很卡顿。解决办法是把这个高分辨率图片放到drawable-xxhdpi下。
&nb
- 扩展easyUI tab控件,添加加载遮罩效果
知了ing
jquery
(function () {
$.extend($.fn.tabs.methods, {
//显示遮罩
loading: function (jq, msg) {
return jq.each(function () {
var panel = $(this).tabs(&
- gradle上传jar到nexus
矮蛋蛋
gradle
原文地址:
https://docs.gradle.org/current/userguide/maven_plugin.html
configurations {
deployerJars
}
dependencies {
deployerJars "org.apache.maven.wagon
- 千万条数据外网导入数据库的解决方案。
alleni123
sqlmysql
从某网上爬了数千万的数据,存在文本中。
然后要导入mysql数据库。
悲剧的是数据库和我存数据的服务器不在一个内网里面。。
ping了一下, 19ms的延迟。
于是下面的代码是没用的。
ps = con.prepareStatement(sql);
ps.setString(1, info.getYear())............;
ps.exec
- JAVA IO InputStreamReader和OutputStreamReader
百合不是茶
JAVA.io操作 字符流
这是第三篇关于java.io的文章了,从开始对io的不了解-->熟悉--->模糊,是这几天来对文件操作中最大的感受,本来自己认为的熟悉了的,刚刚在回想起前面学的好像又不是很清晰了,模糊对我现在或许是最好的鼓励 我会更加的去学 加油!:
JAVA的API提供了另外一种数据保存途径,使用字符流来保存的,字符流只能保存字符形式的流
字节流和字符的难点:a,怎么将读到的数据
- MO、MT解读
bijian1013
GSM
MO= Mobile originate,上行,即用户上发给SP的信息。MT= Mobile Terminate,下行,即SP端下发给用户的信息;
上行:mo提交短信到短信中心下行:mt短信中心向特定的用户转发短信,你的短信是这样的,你所提交的短信,投递的地址是短信中心。短信中心收到你的短信后,存储转发,转发的时候就会根据你填写的接收方号码寻找路由,下发。在彩信领域是一样的道理。下行业务:由SP
- 五个JavaScript基础问题
bijian1013
JavaScriptcallapplythisHoisting
下面是五个关于前端相关的基础问题,但却很能体现JavaScript的基本功底。
问题1:Scope作用范围
考虑下面的代码:
(function() {
var a = b = 5;
})();
console.log(b);
什么会被打印在控制台上?
回答:
上面的代码会打印 5。
&nbs
- 【Thrift二】Thrift Hello World
bit1129
Hello world
本篇,不考虑细节问题和为什么,先照葫芦画瓢写一个Thrift版本的Hello World,了解Thrift RPC服务开发的基本流程
1. 在Intellij中创建一个Maven模块,加入对Thrift的依赖,同时还要加上slf4j依赖,如果不加slf4j依赖,在后面启动Thrift Server时会报错
<dependency>
- 【Avro一】Avro入门
bit1129
入门
本文的目的主要是总结下基于Avro Schema代码生成,然后进行序列化和反序列化开发的基本流程。需要指出的是,Avro并不要求一定得根据Schema文件生成代码,这对于动态类型语言很有用。
1. 添加Maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<proj
- 安装nginx+ngx_lua支持WAF防护功能
ronin47
需要的软件:LuaJIT-2.0.0.tar.gz nginx-1.4.4.tar.gz &nb
- java-5.查找最小的K个元素-使用最大堆
bylijinnan
java
import java.util.Arrays;
import java.util.Random;
public class MinKElement {
/**
* 5.最小的K个元素
* I would like to use MaxHeap.
* using QuickSort is also OK
*/
public static void
- TCP的TIME-WAIT
bylijinnan
socket
原文连接:
http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html
以下为对原文的阅读笔记
说明:
主动关闭的一方称为local end,被动关闭的一方称为remote end
本地IP、本地端口、远端IP、远端端口这一“四元组”称为quadruplet,也称为socket
1、TIME_WA
- jquery ajax 序列化表单
coder_xpf
Jquery ajax 序列化
checkbox 如果不设定值,默认选中值为on;设定值之后,选中则为设定的值
<input type="checkbox" name="favor" id="favor" checked="checked"/>
$("#favor&quo
- Apache集群乱码和最高并发控制
cuisuqiang
apachetomcat并发集群乱码
都知道如果使用Http访问,那么在Connector中增加URIEncoding即可,其实使用AJP时也一样,增加useBodyEncodingForURI和URIEncoding即可。
最大连接数也是一样的,增加maxThreads属性即可,如下,配置如下:
<Connector maxThreads="300" port="8019" prot
- websocket
dalan_123
websocket
一、低延迟的客户端-服务器 和 服务器-客户端的连接
很多时候所谓的http的请求、响应的模式,都是客户端加载一个网页,直到用户在进行下一次点击的时候,什么都不会发生。并且所有的http的通信都是客户端控制的,这时候就需要用户的互动或定期轮训的,以便从服务器端加载新的数据。
通常采用的技术比如推送和comet(使用http长连接、无需安装浏览器安装插件的两种方式:基于ajax的长
- 菜鸟分析网络执法官
dcj3sjt126com
网络
最近在论坛上看到很多贴子在讨论网络执法官的问题。菜鸟我正好知道这回事情.人道"人之患好为人师" 手里忍不住,就写点东西吧. 我也很忙.又没有MM,又没有MONEY....晕倒有点跑题.
OK,闲话少说,切如正题. 要了解网络执法官的原理. 就要先了解局域网的通信的原理.
前面我们看到了.在以太网上传输的都是具有以太网头的数据包. 
- Android相对布局属性全集
dcj3sjt126com
android
RelativeLayout布局android:layout_marginTop="25dip" //顶部距离android:gravity="left" //空间布局位置android:layout_marginLeft="15dip //距离左边距
// 相对于给定ID控件android:layout_above 将该控件的底部置于给定ID的
- Tomcat内存设置详解
eksliang
jvmtomcattomcat内存设置
Java内存溢出详解
一、常见的Java内存溢出有以下三种:
1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。
可以利用JVM提
- Java6 JVM参数选项
greatwqs
javaHotSpotjvmjvm参数JVM Options
Java 6 JVM参数选项大全(中文版)
作者:Ken Wu
Email:
[email protected]
转载本文档请注明原文链接 http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm!
本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Opt
- weblogic创建JMC
i5land
weblogicjms
进入 weblogic控制太
1.创建持久化存储
--Services--Persistant Stores--new--Create FileStores--name随便起--target默认--Directory写入在本机建立的文件夹的路径--ok
2.创建JMS服务器
--Services--Messaging--JMS Servers--new--name随便起--Pers
- 基于 DHT 网络的磁力链接和BT种子的搜索引擎架构
justjavac
DHT
上周开发了一个磁力链接和 BT 种子的搜索引擎 {Magnet & Torrent},本文简单介绍一下主要的系统功能和用到的技术。
系统包括几个独立的部分:
使用 Python 的 Scrapy 框架开发的网络爬虫,用来爬取磁力链接和种子;
使用 PHP CI 框架开发的简易网站;
搜索引擎目前直接使用的 MySQL,将来可以考虑使
- sql添加、删除表中的列
macroli
sql
添加没有默认值:alter table Test add BazaarType char(1)
有默认值的添加列:alter table Test add BazaarType char(1) default(0)
删除没有默认值的列:alter table Test drop COLUMN BazaarType
删除有默认值的列:先删除约束(默认值)alter table Test DRO
- PHP中二维数组的排序方法
abc123456789cba
排序二维数组PHP
<?php/*** @package BugFree* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $*** Sort an two-dimension array by some level
- hive优化之------控制hive任务中的map数和reduce数
superlxw1234
hivehive优化
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2. 
- Spring Boot 1.2.4 发布
wiselyman
spring boot
Spring Boot 1.2.4已于6.4日发布,repo.spring.io and Maven Central可以下载(推荐使用maven或者gradle构建下载)。
这是一个维护版本,包含了一些修复small number of fixes,建议所有的用户升级。
Spring Boot 1.3的第一个里程碑版本将在几天后发布,包含许多
三、关系型数据仓库
SQL Server 2005 关系数据库引擎包含一些对数据仓库样式应用程序设计和维护大有帮助的功能。这些功能包括:
• 对于超大型的表而言,表分区可快速数据的加载速度,并简化维护过程。
• 轻松创建报告服务器
• Transact-SQL 方面的改进包括新增的数据类型和新增的分析功能
• 联机索引操作
• 细化备份/还原操作
• 快速初始化文件
报告服务器
要想将关系操作报告从事务处理数据库中分离出来,经常采用的一项技术便是维护一台报告服务器。报告服务器对事务处理数据库映像的维护一般都有一定的时间延迟,通常截止到前一天。报告服务器多用于报告功能和数据仓库提取。
Microsoft SQL Server 2005 新增了两项功能,使报告服务器的创建和维护过程变得更加简单。SQL Server 报告服务器的延迟时间与以前相比大大缩短。同时,报告服务器被设计为充当事务处理系统的备选系统。
要创建报告服务器,先要创建一个数据库镜像,这是 SQL Server 2005 的新增功能,它为系统的高可用性提供了一个紧急备用系统。更多信息,请阅读联机丛书的“数据库镜像概念”主题。数据库镜像不能够直接查询,这时第二个新增功能就能派上用场了。
在镜像上创建一个数据库视图。数据库视图是数据库在某个时点的只读副本。数据库视图并非数据库的完整副本;极为节省空间。多个数据库视图还是可以同时共存,虽然维护数据库视图会对数据库视图所基于的事务处理数据库产生一定的影响。更多信息,请阅读联机丛书的“了解数据库视图”主题。
通过在数据库镜像上创建数据库视图,您可轻松为系统的高可用性创建备用服务器,此服务器还可用作报告服务器,起着双重作用。
表分区
分区表和分区索引将数据分割到多个水平单元中,以便于将行组映射到单独的分区中。而对数据执行操作(如查询)时,又可以将整个表或索引作为一个整体来执行。
分区可以:
• 改善数据表和索引的可管理性。
• 改善多 CPU 机器上的查询性能。
在关系型数据仓库中,事实数据表比较适合应用表分区,而按日期范围分区又是最常见的分区策略。
正如联机从书的“创建分区表和索引”主题中所描述的,定义分区表可分为三个步骤:
1.
创建一个分区函数,指定使用此函数的表如何分区。
2.
创建一个分区方案,指定应用此分区函数的分区在文件组上的位置。
3.
使用此分区方案创建一个表或索引。
多个表可以使用同一个分区方案。
本文讨论了事实数据表的“范围”分区,但其目的并非是针对表分区的完整讨论或教程。有兴趣的读者请参阅 SQL Server 联机丛书。
最常用的分区方案是按日期范围(如年、季、月或甚至天)对事实数据表进行分区。在大多数情况下,对大型事实数据表进行日期分区可以提供良好的可管理性收益。为了改善查询性能,应尽量使用相同的分区方案对时间维度表进行分区。
• 分区表和未分区表的行为方式相同。
• 针对表的查询能够得到正确解析。
• 针对表的直接插入、更新和删除会被自动解析到适当的分区。
使用数据表分区快速加载数据
许多数据仓库应用程序都力求在越来越小的加载窗口中加载越来越多的数据量。典型的流程是这样的,先从几个源系统中提取数据开始,接下来便是在这些系统间清理、转换、合成和合理化数据。数据管理应用程序被限制为在加载窗口中完成整个提取、转换和加载流程。通常,系统的业务用户都强烈要求将数据仓库查询时的不可用时间降至最低。在设计时,数据管理应用程序的“写入”步骤(即将新数据插入到现有数据仓库的步骤)必须在短时间内完成,且要最小化对用户造成的影响。
为了非常快速地加载数据,数据库恢复模型必须为“批量记录”恢复模式或“简单”恢复模式,而数据表必须为空,或是包含数据但不包含索引。如果满足这些条件,不作记录的加载便成为可能。在 SQL Server 2000 中,分区表出现以前,这些条件通常只在初始历史数据仓库加载中才能满足。一些具有大型数据仓库的客户已通过在分散的物理表上搭建 UNION ALL 视图,构建了一个准分区结构;这些数据表都使用不记录技术填充每个加载周期。这一方法并不尽如人意,而 SQL Server 2005 分区表则提供了更为优秀的功能。
在 SQL Server 2005 中,您不能直接在分区中执行不记录加载。但是,却可以将数据加载到将调用伪分区的单独表中。在特定条件下,您可以用执行速度极快的元数据操作将伪分区切换到分区表中。此技术可满足我们的两个要求:
• 最小化整体加载时间:在不作记录的情况下执行伪分区加载,以及
• 最小化对最终用户的影响,并确保数据仓库的完整性:伪分区可以在用户查询数据仓库时被加载。在执行分区切换之前,数据管理应用程序会等到所有事实数据表全部加载完毕为止。分区切换的执行速度非常快,反应时间通常不到一秒。
此外,伪分区还可作为单独的表进行备份,从而改善系统的可管理性。
使用表分区快速删除数据
许多数据仓库在数据仓库中保留了一个详细活动数据的滑动窗口。例如,事实数据表可能包含三年、五年或十年的数据。每到一个时间周期,便从数据表中删除最旧的数据。持续删除数据的主要原因在于要提高查询性能并最小化存储成本。
SQL Server 2005 分区使大型分区事实数据表中旧数据的删除倍加轻松。如上所述,简单地创建一个空白伪分区,然后将其切换到分区表中。分区表在其曾植入分区的地方有一个空白分区;伪分区在其曾为空白的地方包含数据。用户可以根据需要对伪分区进行适当的备份、截断或删除。
或者,您还可以选择重新定义分区函数,将所有空白分区合并到一个分区中。
Transact-SQL 方面的改进
新的数据类型
SQL Server 2005 中有一些很重要的新类型,这些类型对数据仓库大有裨益:
• Varchar(max)、nvarchar(max) 和 varbinary(max) 支持 2GB 的数据,对于 text、ntext 和 image 数据类型非常有用。这些扩展的字符类型可能对在数据仓库中保存扩展的元数据和其他说明性信息非常有用。
新的分析功能
许多新分析功能都提供了 Transact-SQL 中的基本分析功能。这些功能在那些允许用户查询关系数据库,而不是通过 Analysis Services 排他查询数据的数据仓库中非常有用。另外,在数据中转过程中,这些复杂的计算常被用来开发有价值的数据属性。
ROW_NUMBER。返回结果集的连续行号。
RANK。返回行在结果集中的等级。在通常情况下,RANK 值与有序数据集上的 ROW_NUMBER 值相同。但对于那些彼此之间有关联的行来说,则是所有具有相同排序值的行都有相同的等级。而下一个等级则又与 ROW_NUMBER 值相同。换句话说,如果在第一个位置存在双向关联,那么行 1 和行 2 的 RANK 就都为 1,而行 3 的 RANK 则为 3。不存在 RANK 为 2 的行。
DENSE_RANK。返回行在结果集中的等级。DENSE_RANK 函数与 RANK 相似,只是去除了 RANK 函数所留下的空隙。在上面的示例中,行 1 和行 2 的 RANK 为 1,而行 3 的 RANK 则为 2。
NTILE。将有序集分成指定数量、大小近似相等的组。
在 SQL Server 2005 Beta 2 中还不能使用这些函数。
PIVOT 和 UNPIVOT 操作符
PIVOT 操作符可以按查询中的中断值旋转结果集,从而使您可以生成交叉数据报告。例如,如果表中在两个不同的行中包含 "Actuals" 和 "Budgets" 数据,则使用 PIVOT 操作符将可以生成带有 [Actuals] 和 [Budgets] 列的交叉数据报告。
与之相似,UNPIVOT 操作符可以将一行拆分为若干行。在此示例中,带有 [Actuals] 和 [Budgets] 列的行集可以被转换为包含这些值的多个行。
在以前的 SQL Server 版本中,用户能够编写复杂的 Transact-SQL SELECT 语句来旋转数据。PIVOT 和 UNPIVOT 操作符则为数据旋转提供了更为简单的机制。
递归查询
在许多方案中,“递归查询”都是非常有用的。SQL Server 2005 中的新增功能令递归查询成为可能,虽然此项功能还不是十分简单易用。
递归查询是针对自联接表的查询。自联接表的两个常见示例有保存员工及其经理信息的数据表,和保存材料清单的数据表。在 AdventureWorks 数据库的 Employee 表中对自联接数据表进行了说明。
查询自联接表的直接关系通常十分简单,如查询直接向经理报告的员工数量。但是,如果要回答“经理的组织中有多少名员工?”这样一个问题却十分困难。
SQL Server 2005 中的关系数据库功能解决了这一问题,这一功能被称为“递归通用表表达式”。“附录”中包含一个递归查询的示例,该示例回答了以上定义的问题。联机丛书的 "WITH
四、提取、转换和加载 (ETL)
数据转换服务 (DTS) 对于 SQL Server 2005 而言,是一项全新的技术。DTS 是 SQL Server 2000 中很受欢迎的一项功能,但 DTS 2005 已被重新设计成企业 ETL 平台。DTS 为构建企业级 ETL 应用程序提供了大量必需的功能,以及非常高的扩展性能。DTS 是完全可编程的、嵌入式的、可扩展的——所有这些特性都使它成为理想的 ETL 平台。
下表总结了 DTS 2005 的这些功能。有关 ETL 系统开发 DTS 适用性更加完整的讨论,请参阅 SQL Server 联机丛书。
包开发
SQL Server 2005 的 DTS 功能 企业 ETL 开发 ETL 平台
使用 Business Intelligence Development Studio 图形用户界面设计数据管理应用程序的 DTS 包。DTS 包的设计、开发和调试均在 Business Intelligence Development Studio 中完成,您只需从工具栏拖动任务、为其设置属性并将任务与优先约束相连接便可完成这一切。
•
使用 SQL Server Management Studio 向导开发执行常规任务(如“复制数据库”)的简单 DTS 包。
•
软件供应商将在其产品中嵌入 DTS 功能,构建按需生成自定义包的向导。
•
将控制流从数据流中分离出来。大多数的 DTS 包都包含多个控制流任务,以及循环任务或顺序任务,这些任务都被放置在控制流窗格中。控制任务(管道任务)是包的工作动力,它拥有自己的设计表面,可用于布置数据流。控制流和数据流的分离使得程序更加容易读取。
•
包变量是经过定义且可见的。变量是受限制的,如受包、循环或任务的限制。
•
复杂的 ETLM 系统可以通过构建包网络实现,其中包含一个调用其他包的包。子包可以很好地重新使用逻辑、变量和上下文。DTS 2005 与 DTS 2000 相比,对嵌套数据包的需求有所减少。
•
包配置框架是可扩展的系统,可用于自定义包在不同环境中的运行方式。
•
DTS 程序以 XML 格式存储在文件系统或 SQL Server 中。DTS XML 文件可受源代码管理。
• •
DTS 2000 包迁移向导可以帮助您将包迁移至 DTS 2005,它还可以在出现升级问题的地方提供警告。
•
DTS 2000 运行时包含在 SQL Server 2005 中,在不升级 DTS 2000 包的情况下,仍可运行。
•
包的操作和结果会以多种形式被记录下来,分发给广泛的提供程序。
• •
事件处理程序逻辑只需定义一次,便可多次使用。
• •
与 WMI 的集成表明包可以对外部事件(例如文件复制的完成)作出响应,或抛出可供其他进程使用的 WMI 事件。
• •
包可重启性与事务控制和故障检查点一起,可以帮助管理员管理复杂的包,移动大量数据。
•
控制流
SQL Server 2005 的 DTS 功能 企业 ETL 开发 ETL 平台
优先约束:您可以设计一个包,以在任务成功、失败或完成时将控制传递给这些不同的任务。
•
循环任务包括 For、ForEach 和 Sequence 循环。包开发人员可以在数据的所有(或一组)表上、目录中的文件上或是 Analysis Services 多维数据集分区上轻松执行一组操作。
•
Analysis Services 集成是无缝的,它与自动执行 Analysis Services DDL 的控制任务一起处理 Analysis Services 对象,或执行数据挖掘查询。正如下面所讨论的,DTS 管理还集成了 Analysis Services。
•
VB.NET 脚本可与“脚本任务”一起使用。被称为“ActiveX 脚本任务”的第二个脚本任务主要用于向后兼容 DTS 2000。
•
通信任务包括:
• 消息队列
• 发送邮件
•
其他控制流任务包括:
• 大容量插入
• 执行包
• 执行进程
• 执行 SQL
• 文件系统
• FTP
•
其他任务可以使用 DTS 对象模型轻松开发。
•
数据流
SQL Server 2005 的 DTS 功能 企业 ETL 开发 ETL 平台
在数据流管道中存在多个源、转换和目的。只有在转换完成时,数据才能被读取、合并和操作,然后才能写入。中转表所需的多次写入被削弱或消除;转换性能得到极大提高。
•
“DTS 管道”任务使用来自多个异类数据源和本机的数据。可扩展的“数据源”体系结构支持来自平面文件、OLEDB 源(包括 DB2 和 Oracle)和原始文件的数据。其他源,包括使用特殊结构化数据的源都在计划之内。
• •
其他数据源可以由 Microsoft 及其合作伙伴轻松开发。
•
来自多个源的数据可以与联接、查找和联合操作符相联接。这些操作都在内存中执行,不需要对数据库或文件执行写入操作。
•
数据流可以使用条件分离和多播转换。类似编译器的 DTS 引擎确定了可以平行操作哪些数据流。
•
大量基于行的数据转换都是由字符映射、复制映射、数据转换和派生列转换所提供的。这些操作符更像是向导,而非转换,它们提供了用户所需的大部分数据转换。
•
有些数据转换任务需要对多个行中的数据进行比较。排序和聚合转换可以在数据流中以极高的性能执行这些操作,其性能远非数据库聚合可及。
•
有些数据转换任务需要复杂逻辑,例如模糊匹配、模糊分组、时间维度生成以及旋转或反旋转。其他常见任务(例如维度键管理)则需要多个步骤。特殊技术和向导使这些复杂技术可供所有用户使用。
•
转换后的数据可以写入异类目标,其中包括 SQL Server 表、OLEDB 数据库表、平面文件以及原始文件。
• •
转换后的数据可以与 Microsoft BI 解决方案的其他组件集成,其中包括 Analysis Services 数据库和数据挖掘模型。
•
由转换步骤所导致的错误流可以以多种方式进行管理:
• 进程内转换可以“修复”数据并重新提交主要流。
• 错误流可以被记录到表或文件中,以备脱机研究和重新提交。
• •
其他转换和目的可以由 Microsoft 及其合作伙伴轻松开发。
•
开发和调试
SQL Server 2005 的 DTS 功能 企业 ETL 开发 ETL 平台
包开发商可以在每个控制流任务中定义控制流断点。在调试过程中,断点可以定义在某些任务执行点之前、之后,或定义在这些任务执行点。
•
包开发商可以为数据流中的每个转换附加一个数据查看器。在调试过程中,数据查看器会显示在该点的转换后数据流内容。
•
Business Intelligence Development Studio 寄宿在 Visual Studio 中。脚本及其他编程任务可以充分利用该企业开发环境的优点。
• •
包开发可以帮助用户将所有包组件(包括自定义脚本和可执行程序)捆绑在一起,以用于发行测试、生产或其他客户系统。
•
可供 DTS 2000 开发人员使用的 DTS 2005
DTS 2000 用户已经开发出了一套执行复杂操作的技巧。这些技巧,尤其是编写自修改包,在 DTS 2005 中不再有用武之地。在 DTS 2005 中要使用变量和配置基础结构来编写动态包、不要再试图编写自修改包。
配置良好的变量和配置基础结构还可以减少创建复杂子包系统的需求。如果设计完善,单一包便可满足多种需求;例如,单一包可以在多种不同配置中重复使用,以用来在维度数据仓库中加载许多维度表。在 DTS 2000 中,一个复杂的 DTS 包网络可能包括 50-100 个包;而在 DTS 2005 中,一个复杂的网络可能只包含 10 个包。