- 通过DBeaver连接Phoenix操作hbase
不想做咸鱼的王富贵
通过DBeaver连接Phoenix操作hbase前言本文介绍常用一种通用数据库工具Dbeaver,DBeaver可通过JDBC连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQLServer、Sybase、MSAccess、Teradata、Firebird、Derby等等。商业版本更是可以支持各种NoSQ
- spring boot jar 启动报错 Zip64 archives are not supported
赵丙双
javaspringbootjarzipzip64loader
springbootjar启动报错Zip64archivesarenotsupported原因、解决方案问题为什么springboot不支持zip64zip、zip64功能上的区别zip的文件格式spring-boot-loader是如何判断是否是zip64的?参考springboot版本是2.1.8.RELEASE,引入以下phoenix依赖之后启动报错。org.apache.phoenixph
- EMR组件部署指南
ivwdcwso
运维EMR大数据开源运维
EMR(ElasticMapReduce)是一个大数据处理和分析平台,包含了多个开源组件。本文将详细介绍如何部署EMR的主要组件,包括:JDK1.8ElasticsearchKafkaFlinkZookeeperHBaseHadoopPhoenixScalaSparkHive准备工作所有操作都在/data目录下进行。首先安装JDK1.8:yuminstalljava-1.8.0-openjdk部署
- 大数据技术之HBase 与 Hive 集成(7)
大数据深度洞察
Hbase大数据hbasehive
目录使用场景HBase与Hive集成使用1)案例一2)案例二使用场景如果大量的数据已经存放在HBase上面,并且需要对已经存在的数据进行数据分析处理,那么Phoenix并不适合做特别复杂的SQL处理。此时,可以使用Hive映射HBase的表格,之后通过编写HQL进行分析处理。HBase与Hive集成使用Hive安装https://blog.csdn.net/qq_45115959/article/
- 大数据技术之HBase整合 Phoenix(6)
大数据深度洞察
Hbase大数据hbase数据库
目录HBase整合PhoenixPhoenix简介Phoenix定义为什么使用PhoenixPhoenix快速入门安装1)官网地址2)Phoenix部署PhoenixShell操作Table表的映射数字类型说明PhoenixJDBC操作Phoenix二级索引二级索引配置文件全局索引(globalindex)包含索引(coveredindex)本地索引(localindex)HBase整合Phoen
- Phoenix自定义函数UDF异常解决方案
kikiki2
在Phoenix客户端使用自定义函数UDF时候是正常的,但是在本地测试的时候报Function类找不到的异常。异常演示例子@TestpublicvoidtestSql2()throwsSQLException{Stringsql="selectCRC32(\"userId\")fromTEST_LOG";Configurationconf=newConfiguration();conf.addRe
- Phoenix的安装和使用
JasonLee实时计算
直接看我的公众号吧https://mp.weixin.qq.com/s/yNAmlFPnHMqCDIXhFVLhrw
- codeforces 1400分
沫刃起
codeforces算法c++数据结构
文章目录1.[B.PhoenixandBeauty](https://codeforces.com/problemset/problem/1348/B)2.[C.RotationMatching](https://codeforces.com/problemset/problem/1365/C)3.[C.ElementExtermination](https://codeforces.com/pr
- Phoenix自定义函数UDF异常解决方案
kikiki1
在Phoenix客户端使用自定义函数UDF时候是正常的,但是在本地测试的时候报Function类找不到的异常。异常演示例子@TestpublicvoidtestSql2()throwsSQLException{Stringsql="selectCRC32(\"userId\")fromTEST_LOG";Configurationconf=newConfiguration();conf.addRe
- Python3环境下安装wxPython
怀沙
今天当我用pipinstallwxpython的时候提示找不到适合的版本查了一下原因发现我用Python3.6版本、老版本的wxPython是不支持Python3系列的;我们就需要用到Phoenix了。Phoenix是wxPython的一个全新的实现,它的目的是让wxPython“比以前更好、更强大、更快”下面我们来说说怎么样在Python3环境中安装wxPythonWxPython-logo.p
- 了解去中心化杠杆代币:以Phoenix Finance为例
chinadefi
去中心化区块链比特币
了解去中心化杠杆代币:以PhoenixFinance为例市场上有几种去中心化杠杆代币模型,包括SetProtocol、Tracer和PhoenixFinance。它们都对杠杆头寸的代币化应用了非常不同的方法。什么是杠杆代币?杠杆代币是一种衍生品,为持有者提供了对加密资产的稳定杠杆敞口。代币持有者不需要担心主动管理杠杆头寸、借款或清算。固定的杠杆或杠杆范围由再平衡机制维持。例如,PhoenixFin
- Phoenix Digital网络模块——将新的PLC连接到传统远程I/O
SoftingChina
Softing工业自动化新基建Phoenix网络模块PLCI/OSofting
假如您的工厂进行了大规模的改造以提高生产效率,这就意味着您需要用自动化设备来取代一些手动工艺。在该改造项目中,有一部分需要更新控制系统,但是对于远程I/O,它们是否也需要进行更换呢?如果新的控制系统无法与使用长达20年的远程I/O进行通信,那么它将无法融入老旧的网络系统中。在这种情形下,您可能会认为需要同时更换网络系统和远程I/O,并且在未来也应进行这样的操作。但幸运的是,现在您只需更新PLC,而
- Clickhouse到HBase(Phoenix)数据导入 DataX
布尔科技技术团队
hbaseoraclepostgresql数据仓库
DataXDataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。类型数据源Reader(读)Writer(写)文档RDBMS关系型数据库MySQL√√读、写Oracle√√读、写SQLServer√√读、写PostgreSQL√√读、写DRDS√√读、写通用RDB
- Jmeter 使用技巧
Anniejunyan
自动化测试工具
一、使用代理录制HTTP(web)请求(1)创建HTTP请求默认值1.打开jmeter2.jmeter中测试计划右键,新建线程组3.右键点击新添加的线程组----添加配置元件---添加HTTP请求默认值4.配置HTTP请求默认值--服务器名称或IP(ServerNameorIP)输入:roccoffline.easternphoenix.com--协议(Protocol)输入:http--端口(P
- Apache Phoenix 映射已存在 HBase 表,查询不到数据
Saxon_323e
问题描述按照网友提供的phoenix映射已存在的hbase表demo时,表映射正常,但是使用phoenix查询时,一直查询不到数据。举个栗子:1.hbaseshell插入数据create'test1','i'put'test1','1','i:name','zhangsan'put'test1','2','i:name','lisi'put'test1','1','i:age','15'put't
- 2022-08-25
东临沧海
凤凰社(theOrderofthePhoenix,中文繁体版译为凤凰会),是邓布利多所创办的专门反抗伏地魔的一个组织,由一些不太相成、看起来不太像英雄,默默无闻的人组成,但是大多数都是勇敢无畏的人。凤凰社成员由反抗伏地魔与食死徒的人组成。在1970年代,许多凤凰社成员牺牲了,在第二次魔法战役期间,又有许多成员牺牲。这都是一群坚韧不拔的人。在第二次战役期间总部设在格里莫广场12号,只有保密人能告诉别
- Phoenix自定义函数UDF异常解决方案
kikiki1
在Phoenix客户端使用自定义函数UDF时候是正常的,但是在本地测试的时候报Function类找不到的异常。异常演示例子@TestpublicvoidtestSql2()throwsSQLException{Stringsql="selectCRC32(\"userId\")fromTEST_LOG";Configurationconf=newConfiguration();conf.addRe
- c++函数怎么返回多个值
Phoenix Studio
C++c++开发语言算法
文章目录代码地址:https://github.com/Phoenix8215/CplusplusMagicalCrafts使用结构体或类:定义一个结构体或类,其中包含了所有需要返回的值。然后在函数中返回这个结构体或类的实例。structResult{intvalue1;doublevalue2;charvalue3;};ResultmyFunction(){Resultr;r.value1=1;
- 转载
RECHER_ZHANG
varusername="bolu1234";var_blogger=username;varblog_address="http://blog.csdn.net/bolu1234";varstatic_host="http://csdnimg.cn/release/phoenix/";varcurrentUserName="RECHER_ZHANG";varfileName='51867099'
- 查看oracle服务器信息,查看本地oracle数据库的服务器名
方焉识
查看oracle服务器信息
查看本地oracle数据库的服务器名内容精选换一换该任务指导用户使用Loader将数据从关系型数据库导入到HBase。创建或获取该任务中创建Loader作业的业务用户和密码。确保用户已授权访问作业执行时操作的HBase表或phoenix表。获取关系型数据库使用的用户和密码。检查磁盘空间,确保没有出现告警且余量满足导入、导出数据的大小。如果设置的作业需要使用指定YARN队列功能,该用户需要本章节介绍
- win10找不到d3dx9_43.dll,无法正常启动0xc000007b
集智飞行
笔记系统无人机开发windows
Win10电脑,安装PhoenixRC时,安装好后点击运行,报错找不到d3dx9_43.dll按照网上的一些教程下载d3dx9_43.dll并放到C:\Windows\System32\下再运行regsvr32d3dx9_43.dll并没有作用。正确解决办法:1、腾讯电脑管家--工具箱--电脑诊所--软件硬件--丢失dll文件--丢失d3dx**.dll--立即修复。然后它会帮你安装好Direct
- 10.Flink实时项目之订单维度表关联
选手一号位
1.维度查询在上一篇中,我们已经把订单和订单明细表join完,本文将关联订单的其他维度数据,维度关联实际上就是在流中查询存储在hbase中的数据表。但是即使通过主键的方式查询,hbase速度的查询也是不及流之间的join。外部数据源的查询常常是流式计算的性能瓶颈,所以我们在查询hbase维度数据的基础上做一些优化及封装。phoenix查询封装phoenix作为hbase的一个上层sql封装,或者叫
- 插入类 dp 总结
best_brain
个人总结内容总结算法c++动态规划经验分享
插入类dp总结概念例题Permutation[ABC209F]Deforestation[CEOI2016]kangarooAntMan[JOIOpen2016]摩天大楼[ZJOI2012]波浪PhoenixandComputers[COCI2021-2022#2]Magneti概念\qquad什么是插入类dpdpdp呢?\qquad这类题目都有一个特性:1、题目往往会基于一个给定的排列做dpdp
- 一文读懂大数据工具Phoenix:让你的数据管理更高效!
知识分享小能手
学习心得体会大数据大数据数据库数据分析
介绍:Phoenix,最初由saleforce开发并开源,后成为Apache基金会的顶级项目。它是一个构建在HBase上的SQL层,可以使用标准的JDBCAPIs而不是HBase客户端APIs来创建表、插入数据和查询HBase中的数据。此外,Phoenix还完全使用Java编写,作为HBase内嵌的JDBC驱动,将SQL查询转换为一个或多个HBase扫描。Phoenix的主要特点包括:将SQL查询
- 通过DBeaver连接Phoenix操作hbase
风静花犹落
下载DBeaverhttps://dbeaver.io/download配置JDK(可选)编辑DBeaver安装目录下DBeaver.ini文件,在首行添加JDK安装路径-vmD:\ProgramFiles\jdk\bin连接HBase1.配置文件>新建>数据库连接>ApachePhoenix>填写相应的host,port,username,password信息2.驱动文件自动下载驱动编辑驱动设置
- spark+phoenix读取hbase
潮落拾贝
sparkhbase大数据
正常来说这个内容应该网上可参考的文章很多,但是我还是捣鼓了好久,现在记录下来,给自己个备忘录。phoenix是操作hbase的皮肤,他可以轻松的使用sql语句来操作hbase,比直接用hbase的原语操作要友好的多。spark直接操作hbase也是通过hbase的原语操作,操作起来比较繁琐,下面就是将spark和phoenix相结合的方法步骤。我用的是scala语言,首先pom.xml中添加依赖o
- 【远程访问】Hbase+Phoenix(伪分布式部署)
itachi-uchiha
数据库hbase分布式bigdatastandalone
目录Server端部署Hbase+Phoenix环境下载安装包安装JDK并配置环境变量配置ssh免密登录(可选)安装并启动zookeeper安装hbase安装phoenix启停hbase验证hbase是否启动Client端使用Phoenix进行远程访问Server端部署Hbase+Phoenix环境本环境为“伪分布式”部署,仅限于技术研究以及开发、测试环境,生产环境请按照最佳实践进行部署。下载安装
- 树莓派安装 Samba 和 Jupyter Notebook服务器(超级详细)
Nirvana Of Phoenixl
rasberryPi服务器jupyterlinux
树莓派安装Samba和JupyterNotebook服务器(良心、超详细)1安装samba2安装jupyternotebook **大功告成,动动小手,点个赞收藏一下支持我**Author:NirvanaOfPhoenixlProverbsforyou:Thereisnodoubtthatgoodthingswillalwayscome,andwhenitcomeslate,itcanbea
- 2.右值引用和移动语义
Phoenix Studio
C++开发语言c++github算法数据结构
文章目录右值引用和移动语义&&的特性右值引用优化性能,避免深拷贝移动(move)语义forward完美转发emplace_back减少内存拷贝和移动unorderedcontainer无序容器map和unordered_map的差别内部实现机理不同优缺点以及适用处小结优缺点以及适用处小结代码地址:https://github.com/Phoenix8215/CplusplusMagicalCraf
- C++11智能指针|巨巨巨详细
Phoenix Studio
C++c++开发语言
文章目录智能指针`shared_ptr``shared_ptr`的基本用法使用`shared_ptr`要注意的问题`unique_ptr`独占的智能指针weak_ptr弱引用的智能指针weak_ptr的基本用法weak_ptr返回this指针weak_ptr解决循环引用问题weak_ptr使用注意事项代码地址:https://github.com/Phoenix8215/CplusplusMagi
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul