使用superset完成mysql数据库或者hive数据库的数据可视化

2023-11-01

  • 虚拟机安装步骤

注意事项:以下bigdata100均记得更换为bigdata1即可

确保本地电脑已经安装好了VMware Workstation Pro

下载地址:下载 VMware Workstation Pro | CN

清华大学镜像源:

https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/

以下的bigdata100记得改成bigdata1就好了

请将下面bigdata100改为bigdata1即可

安装好以后,如下即可

  • 安装操作系统

确保系统虚拟化已经打开(如果没打开还要打开虚拟化,百度)

  • Cent OS 系统安装

接着选中ISO镜像即可

确定以后,我们在主界面需要看到ISO已经被使用

然后启动虚拟机即可,等待片刻,出现如下画面

以下界面鼠标左键进入,然后回车即可

稍等片刻选择语言

选择好语言之后,就直接进入下一步

接着设置好时间,和当前时间保持一致即可

接着我们选择软件按照模式,选择最小化按照即可

然后是系统分区,这个我们简单设置一下即可

选择自定义分区

分区的情况参考如下

最后点击完成即可

然后接收更改

建议不要启用kdump,因为我们虚拟机内存太小了

下图的hadoop100记得改成bigdata1

然后设置一下root用户密码,123456即可

最后重启即可

出现以上界面表示成功!

关机命令:shutdown -h now,输入即可关机

建议大家关机以后做一个快照!

然后新建快照即可

  • 网络配置

首先编辑VMware Workstation Pro的虚拟网络编辑器

接着更改NAT网络的设置

设置子网IP

然后确定网关

以上就是VMware Workstation Pro的网络设置

接下来我们还要完成Windows上面的网络配置

选择net8网卡

照着如下进行修改即可

接着我们需要修改bigdata1的这个主机的网络信息

修改如下

改好了之后,我们还需要修改一下主机名(如果安装系统的时候改了的那么就不用再改了)

修改如下

最后我们做一下域名映射

修改如下

修改完以后,我们重启网络服务

service network restart

验证如下:

还需要配置Windows上面的域名映射

修改如下,新增如下内容

修改hosts为了立即生效,我们需要将修改刷新到缓存中

打开cmd窗口

做好之后,我们还需要稍微改一下bigdata1

使用yum安装额外的软件升级包

yum install -y epel-release

最后我们再安装一下网络包

yum install -y net-tools

测试:使用ifconfig命令

安装vim

yum install -y vim

测试:使用vim命令

以上步骤做完以后,我们最好进行快照备份!!!

先关机,再快照!!!

至此,母机bigdata1就搞定了!

远程连接工具使用

这里使用的是xshell和xftp,如果之前用的是其他的也可以使用其他的。

打开xshell,可以新建一个文件夹专门管理会话

然后新建一个会话

然后设置会话属性

接收并保持密钥

输入用户名和密码即可

连接成功以后,我们就可以在xshell中进行bigdata1的访问了

测试如下

如果需要使用xftp,可以直接点击

四、环境配置

我们接着关闭bigdata1上面的防火墙服务

完成之后,我们建立一个普通用户tom,密码是:123456 用于后续的所有操作

设置完成以后,我们最好使用tom这个用户登录测试

测试ok以后,我们需要给tom添加管理员的权限

进入 sudoers文件,进行如下修改即可

注意事项:保存需要使用 :wq! 强制保存退出!

接着我们创建两个目录,一个叫software,用来存放上传的软件和压缩包,一个叫module,用来存放解压后的文件

接着上传文件

使用tom登录,在tom的家目录下上传软件,一个是jdk的包,一个是Hadoop的包

使用xftp进行上传

上传成功以后,将压缩包移动到 /opt/software 目录下

然后解压即可

[tom@bigdata1 software]$ tar -zxvf hadoop-3.1.3.tar.gz  -C /opt/module/

[tom@bigdata1 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

最后可以删除掉压缩包,节省磁盘

[tom@bigdata1 software]$ rm hadoop-3.1.3.tar.gz

[tom@bigdata1 software]$ rm jdk-8u212-linux-x64.tar.gz

接着我们需要配置jdk的环境变量和Hadoop的环境变量

在/etc/profile.d目录下新建一个自己的环境变量脚本

[tom@bigdata1 module]$ sudo vim /etc/profile.d/my_env.sh

打开之后,将下面内容粘贴到脚本中即可

#配置jdk的环境变量

export JAVA_HOME=/opt/module/jdk1.8.0_212

export PATH=$PATH:$JAVA_HOME/bin

如下所示

最后 :wq 保存退出即可

然后刷新环境变量

[tom@bigdata1 module]$ source /etc/profile

接着输入java,出现下图表示jdk环境配置成功!

复制粘贴的办法

要么复制文本内容,要么就复制文件,复制文件可以使用xftp进行文件传输,或者使用小工具进行文件的上传和下载

[tom@bigdata1 profile.d]$ sudo yum -y install lrzsz

安装成功以后,就可以通过sz 命令进行文件的下载

如果要进行文件的上传,直接输入rz然后回车即可(如果传输失败,可能是权限不足,需要在 rz前面加上sudo )

完成jdk的环境变量配置后,没有问题我们再继续完成Hadoop的环境变量配置

还是打开自定义的配置文件

[tom@bigdata1 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh

然后进行如下修改

保存退出后,刷新环境变量

[tom@bigdata1 module]$ source /etc/profile

测试Hadoop的环境变量配置

测试wordcount

在指定目录下新建输入文件路径

[tom@bigdata1 hadoop-3.1.3]$ pwd

/opt/module/hadoop-3.1.3

[tom@bigdata1 hadoop-3.1.3]$ mkdir wcinput

然后进入wcinput目录下,编写输入文件

编辑内容如下

james durant curry

kobe james james

然后保存退出

接着我们在hadoop目录下,输入wordcount的命令即可

[tom@bigdata1 wcinput]$ cd ..

[tom@bigdata1 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ wcoutput

执行成功后,验证如下图所示

最后我们关机快照!!!

五、集群配置

首先需要关机bigta1,然后以bigdata1作为母机进行克隆,我们这里采用的是链接克隆(类似于超链接)

接着选择快照的位置

选择链接克隆

然后修改名字和存放路径(不必跟我保持一致)

接着我们依葫芦画瓢,完成bigdata3的克隆,最后结果如下

对克隆后的虚拟机,我们还需要稍作修改

首先打开2和3,然后修改主机名和ip(以bigdata2为例)

修改主机名为 bigdata2即可

然后修改ip

将ip改为192.168.10.12

改完后使用 reboot命令重启即可

测试如下

改完之后,同理对bigdata3进行相同的修改即可

都改完之后,对2和3都要进行关机快照!

接着打开三台虚拟机,bigdata1,bigdata2,bigdata3,然后使用xshell进行连接,连接成功后我们最好三台虚拟机互pnig

然后我们写一个同步文件的命令xsync

在 /home/tom/目录下新建一个bin目录,然后进入bin目录,使用 vim xsync创建一个xsync文件

在xsync文件里面输入

#!/bin/bash

#1. 判断参数个数

if [ $# -lt 1 ]

then

   echo Not Enough Arguement!

   exit;

fi

#2. 遍历集群所有的机器

for host in bigdata1 bigdata2 bigdata3

do

        echo =========================== $host ================

        #3. 遍历所有目录,发送

        for file in $@

        do

                #4. 判断文件是否存在

                if [ -e $file ]

                   then

                      #5. 获取父目录

                      pdir=$(cd -P $(dirname $file); pwd)

                      #6. 获取当前文件的名称

                      fname=$(basename $file)

                      ssh $host "mkdir -p $pdir"

                      rsync -av $pdir/$fname $host:$pdir

                   else

                      echo $file does not exists!

                fi

        done

done

然后赋予执行的权限

[tom@bigdata1 bin]$ chmod u+x xsync

然后可以测试xsync

[tom@bigdata1 ~]$ xsync bin

输入yes和密码123456,就可以在2和3上面看见从1同步过来的的bin目录和bin目录里面的文件

为了更加方便后续的操作,我们最好还做一下免密登录

进入 /home/tom/.ssh 目录下(如果没有 .ssh 目录可以使用mkdir 创建一下)

然后使用指定的命令生成免密登录需要的公钥和私钥

[tom@bigdata1 .ssh]$ ssh-keygen -t rsa

一直回车,就可以发现生成成功

做完之后,将公钥发给其他虚拟机

[tom@bigdata1 .ssh]$ ssh-copy-id bigdata1

[tom@bigdata1 .ssh]$ ssh-copy-id bigdata2

[tom@bigdata1 .ssh]$ ssh-copy-id bigdata3

每次执行命令输入123456密码即可

最后测验免密登录

如果没问题就完成2和3的免密操作,和1同理

在bigdata2上演示免密登录

在bigdata3上演示免密登录

做完之后,我们需要关机快照,关机可以使用一个简单的脚本完成群关机。

在 /home/tom/bin 目录下,上传群关机的脚本 gj ,然后赋予一个执行的权限即可

[tom@bigdata1 bin]$ chmod u+x gj

然后就可以直接输入 gj 进行1,2,3的同时关机了,比较方便

关机以后,我们再对1,2,3进行快照,如下

完成快照后,打开1,2,3,我们接下来就要完成Hadoop的分布式环境搭建

首先是配置文件的修改,在 /opt/module/hadoop-3.1.3/etc/hadoop 目录下,针对五个配置文件(mapred-site.xml,yarn-site.xml,hdfs-site.xml,core-site.xml,workers)进行修改,直接使用我改好的即可

替换成群里改好的配置文件以后,做配置文件的分发,如下图所示

测试

首先格式化nanenode服务

[tom@bigdata1 hadoop-3.1.3]$ hdfs namenode -format

格式化成功以后,需要启动Hadoop试试

在bigdata1上面启动HDFS

[tom@bigdata1 hadoop-3.1.3]$ start-dfs.sh

启动成功后,使用jps命令查看1,2,3上面的进程,如下图

然后还要启动Yarn服务

在bigdata2上面启动!!

[tom@bigdata2 hadoop-3.1.3]$ start-yarn.sh

然后启动Yarn如下图

最后,我们还可以通过浏览器来查看验证HDFS和Yarn服务是否正常启动

Yarn服务的界面如下

如果执行过程中出现问题,或者配置修改文件重新改过,那么第二次格式化namenode的时候,就需要删除掉1,2,3上面的 logs和data

然后再对bigdata1上面重新进行namenode的格式化

关闭Hadoop集群的命令如下

在bigdata1上面执行如下命令

[tom@bigdata1 hadoop-3.1.3]$ stop-dfs.sh

然后在bigdata2上面执行如下命令

[tom@bigdata2 hadoop-3.1.3]$ stop-yarn.sh

然后关机快照即可

开机以后,为了更加方便的在1号机的终端查看所有的Java进程,我们可以执行一个脚本 jpsall 来查看

在bigdata1的 /home/tom/bin 目录下,将我写好的文件jpsall上传,上传以后赋予执行的权限

[tom@bigdata1 bin]$ chmod u+x jpsall

然后启动hadoop,在1上面执行 start-dfs.sh ,然后在2号机上面执行 start-yarn.sh 即可,然后在1号机上面输入 jpsall命令即可进行查看

然后我们为了更加方便的启动Hadoop集群和关闭Hadoop集群,我们还可以使用一个脚本去群起和群关

首先关闭1上面的HDFS和2上面的Yarn进程,然后将我改好的脚本文件上传到1的 /home/tom/bin 目录下

然后赋予脚本执行的权限

[tom@bigdata1 bin]$ chmod u+x myhadoop

接着我们就可以输入以下命令进行启动和关闭了

[tom@bigdata1 bin]$ myhadoop start

启动后,使用jpsall命令记得查看一下进程是否都启动成功

如果想要关闭,那么使用以下命令进行关闭

[tom@bigdata1 bin]$ myhadoop stop

关闭后记得也用jpsall 命令查看一下进程是否都关闭成功

MySQL的安装

首先删除bigdata1上面自带的数据库

[tom@bigdata1 ~]$ rpm -qa|grep mariadb

mariadb-libs-5.5.56-2.el7.x86_64

[tom@bigdata1 ~]$ sudo rpm -e --nodeps mariadb-libs

[tom@bigdata1 ~]$ rpm -qa|grep mariadb

然后将群里的MySQL安装包上传到bigdata1的 /opt/software 目录下,上传成功后进行解压

[tom@bigdata1 software]$ tar -xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar

通过yum安装缺少的依赖

[tom@bigdata1 software]$ sudo yum install -y libaio

然后再进行安装了

[tom@bigdata1 software]$ sudo rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm

[tom@bigdata1 software]$ sudo rpm -ivh mysql-community-libs-5.7.38-1.el7.x86_64.rpm

[tom@bigdata1 software]$ sudo rpm -ivh mysql-community-libs-compat-5.7.38-1.el7.x86_64.rpm

[tom@bigdata1 software]$ sudo rpm -ivh mysql-community-client-5.7.38-1.el7.x86_64.rpm

[tom@bigdata1 software]$ sudo rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm

注意顺序一定不要错!

安装成功以后,我们进入 /var/lib/mysql 路径下,查看当前路径下有没有多余的文件,如果有,记得删除

[tom@bigdata1 mysql]$ pwd

/var/lib/mysql

[tom@bigdata1 mysql]$ sudo rm -rf ./*

上述红色命令一定不要自己手写

接着我们初始化MySQL

[tom@bigdata1 software]$ sudo mysqld --initialize --user=mysql

完成后我们可以查看随机生成的密码

[tom@bigdata1 mysql]$ sudo cat /var/log/mysqld.log

临时生成的密码如下(随机生成)

启动MySQL服务

[tom@bigdata1 mysql]$ sudo systemctl start mysqld

启动成功以后,我们需要输入上面临时生成的密码登录

[tom@bigdata1 mysql]$ mysql -uroot -p

Enter password:

登录成功以后,如下图所示

然后我们将MySQL的登录密码设置为123456

mysql> set password = password("123456");

然后我们需要设置一下MySQL允许任意ip连接

mysql> update mysql.user set host='%' where user='root';

mysql> flush privileges;

接着在Windows上远程连接bigdata1的 MySQL进行测试

最后我们进行Hive的配置和测试

首先将Hive和MySQL驱动的压缩包进行上传,上传到 /opt/software 目录下进行解压

[tom@bigdata1 software]$ tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/

[tom@bigdata1 software]$ tar -zxvf mysql-connector-java-5.1.27.tar.gz

然后对Hive进行重命令

[tom@bigdata1 module]$ mv apache-hive-3.1.2-bin hive-3.1.2

然后配置Hive的环境变量,这里直接将我的拿去替换即可

[tom@bigdata1 module]$ sudo vim /etc/profile.d/my_env.sh

#配置jdk的环境变量

export JAVA_HOME=/opt/module/jdk1.8.0_212

export PATH=$PATH:$JAVA_HOME/bin

# 配置Hadoop的环境变量

export HADOOP_HOME=/opt/module/hadoop-3.1.3

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

#HIVE_HOME

export HIVE_HOME=/opt/module/hive-3.1.2

export PATH=$PATH:$HIVE_HOME/bin

做完之后,记得刷新环境变量

[tom@bigdata1 module]$ source /etc/profile

然后解决日志冲突的问题

[tom@bigdata1 module]$ mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak

初始化Hive的元数据库

[tom@bigdata1 hive-3.1.2]$ pwd

/opt/module/hive-3.1.2

[tom@bigdata1 hive-3.1.2]$ bin/schematool -dbType derby -initSchema

尝试启动连接Hive(提前启动Hadoop集群)

[tom@bigdata1 hive-3.1.2]$ bin/hive

启动连接成功如下

退出Hive

hive> exit;

接着我们将Hive的元数据数据库修改为MySQL即可

首先将MySQL的驱动放入到Hive的lib路径下

 cp /opt/software/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar $HIVE_HOME/lib

然后修改Hive的配置文件

[tom@bigdata1 hive-3.1.2]$ vim $HIVE_HOME/conf/hive-site.xml

新增内容如下

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

 <!-- jdbc 连接的 URL -->

 <property>

 <name>javax.jdo.option.ConnectionURL</name>

 <value>jdbc:mysql://bigdata1:3306/metastore?useSSL=false</value>

</property>

 <!-- jdbc 连接的 Driver-->

 <property>

 <name>javax.jdo.option.ConnectionDriverName</name>

 <value>com.mysql.jdbc.Driver</value>

</property>

<!-- jdbc 连接的 username-->

 <property>

 <name>javax.jdo.option.ConnectionUserName</name>

 <value>root</value>

 </property>

 <!-- jdbc 连接的 password -->

 <property>

 <name>javax.jdo.option.ConnectionPassword</name>

 <value>123456</value>

</property>

 <!-- Hive 元数据存储版本的验证 -->

 <property>

 <name>hive.metastore.schema.verification</name>

 <value>false</value>

</property>

 <!--元数据存储授权-->

 <property>

 <name>hive.metastore.event.db.notification.api.auth</name>

 <value>false</value>

 </property>

 <!-- Hive 默认在 HDFS 的工作目录 -->

 <property>

 <name>hive.metastore.warehouse.dir</name>

 <value>/user/hive/warehouse</value>

 </property>

</configuration>

然后登录MySQL,创建一个叫 metastore的数据库

[tom@bigdata1 hive-3.1.2]$ mysql -uroot -p123456

mysql> create database metastore;

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| metastore          |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

5 rows in set (0.01 sec)

mysql> quit;

最后重新初始化Hive的元数据库

[tom@bigdata1 hive-3.1.2]$ schematool -initSchema -dbType mysql -verbose

再次启动Hive进行连接测试

[tom@bigdata1 hive-3.1.2]$ bin/hive

hive> show databases;

hive> show tables;

hive> create table test(id int);

hive> show tables;

OK

test

Time taken: 0.073 seconds, Fetched: 1 row(s)

hive> insert into test values(1);

hive> select id from test;

OK

1

Time taken: 0.377 seconds, Fetched: 1 row(s)

hive> quit;

最后关闭Hadoop集群,做关机快照!!!

使用加入的superset.sh文件快速启动和关闭superset。

脚本记得放在 /home/tom/bin 目录下,赋予脚本执行权限
[tom@bigdata1 bin]$ chmod u+x superset.sh
然后测试能否通过脚本启动和停止superset(通过浏览器去测试!)
[tom@bigdata1 bin]$ superset.sh status
superset is not run.
[tom@bigdata1 bin]$ superset.sh start
start superset...
[tom@bigdata1 bin]$ superset.sh status
superset is running.
[tom@bigdata1 bin]$ superset.sh stop
stop superset...
[tom@bigdata1 bin]$ superset.sh status
superset is not run.

 

 

 

此处使用我上传的ads_order_by_province文件

 

 使用conda安装MySQL客户端
[tom@bigdata1 bin]$ conda activate superset
(superset) [tom@bigdata1 bin]$ conda install mysqlclient

安装成功后重启superset框架
(superset) [tom@bigdata1 bin]$ superset.sh status
superset is running.
(superset) [tom@bigdata1 bin]$ superset.sh restart
restart superset...
(superset) [tom@bigdata1 bin]$ superset.sh status
superset is running.

 

 

 

 

 

 以上是superset数据库的创建流程

以下是数据表的创建流程

 

 

 

 

 

 

 

 

 最后的组件展示图

 

 

 

 

 新建地图组件chart

 

 

 

 配置dashboard面板

 模拟二行二列的排列规则

 设置dashboard自动刷新数据

superset连接Hive步骤如下

1. 首先来到Hive配置文件目录
[tom@bigdata1 ~]$ cd /opt/module/hive-3.1.2/conf
[tom@bigdata1 hive-3.1.2]$ pwd
/opt/module/hive-3.1.2/conf

2. 然后修改Hive配置文件 hive-site.xml(使用我上传修改好的直接替换)

3. 然后在指定目录下修改Hadoop的配置文件 core-site(使用我上传修改好的直接替换)
[tom@bigdata1 hadoop]$ pwd
/opt/module/hadoop-3.1.3/etc/hadoop

 4. 然后进行superset环境,执行以下命令
(superset) [tom@bigdata1 conf]$ pip install sasl

(superset) [tom@bigdata1 conf]$ pip install thrift

(superset) [tom@bigdata1 conf]$ pip install thrift-sasl
(superset) [tom@bigdata1 conf]$ pip install PyHive

(superset) [tom@bigdata1 conf]$ sudo yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi

5. 然后重启superset
(superset) [tom@bigdata1 conf]$ superset.sh restart

6. 启动Hadoop

myhadoop start

7. 启动Hive的server2服务

[tom@bigdata1 hive-3.1.2]$ bin/hive --service hiveserver2

8. 使用beeline连接hive 并测试

[tom@bigdata1 hive-3.1.2]$ bin/beeline -u jdbc:hive2://bigdata1:10000 -n tom

 

 

 对于图像出不来的情况,看如下

Superset连接卡住

 Bigdata123里的core-site.xml全部更改

Superset网页超时报错解决方法

Superset绘制又双报错

修改Yarn-site.xml文件

 运行即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用superset完成mysql数据库或者hive数据库的数据可视化 的相关文章

  • Mysql - Mysql2::错误:字符串值不正确:

    所以我建造了一个刮刀并拉动一些物体 问题是有些是外语 它使 mysql 数据库有点崩溃 这是我得到的错误 知道我能用这个做什么吗 谢谢 Mysql2 错误 列的字符串值不正确 xC5 x8Dga 第 1 行的 描述 插入sammiches
  • 使用mysql在一个查询中选择多个表中的子项总数

    我整个下午都在尝试处理一个查询 或两个或三个 以获得三个表的所有子表的计数 看看我的设计 用户表 id user name 1 foo 2 bar 赢表 id won user 1 1 2 1 3 2 绘制表格 id draw user 1
  • MySQL SELECT 输出同一行中每个 id 的下一个日期

    我查询的表结构如下 ID Date Before value After value 1 2014 04 25 Win Loss 1 2014 04 30 Loss Win 1 2014 08 18 Win Loss 1 2014 08 2
  • SQL统计高于和低于平均分的学生人数

    我在下面有一个示例表 我试图获取高于平均分数的学生人数和低于平均分数的学生人数 name subject classroom classarm session first term score first term grade std1 m
  • MySQL用户创建的临时表已满

    我使用内存引擎创建了一个临时表 如下所示 CREATE TEMPORARY TABLE IF NOT EXISTS some text id INT DEFAULT 0 string varchar 400 DEFAULT engine m
  • MySQL InnoDB 查询性能

    我正在尝试优化一个简单的 sql 查询 该查询将多次运行大量数据 这是场景 MySQL 与 InnoDB 表 where 和 join 中使用的所有字段都已索引 表有 FK 我不需要查询的整个缓存 但每个表的缓存是可能的 表有更多的更新 插
  • Apache Impala 中是否有相当于 Hive 的“爆炸”功能的函数?

    Hive的函数explode是记录在这里 https cwiki apache org confluence display Hive LanguageManual UDF LanguageManualUDF Built inTable G
  • 通过货币换算获取每种产品类型的最低价格

    我想选择每种产品类型中最便宜的 包括运费 价格转换为当地货币 最便宜 产品 价格 产品 运费 seller to aud 我的数据库有如下表 PRODUCTS SELLERS id type id seller id price shipp
  • C#:SQL 查询生成器类

    在哪里可以找到好的 SQL 查询构建器类 我只需要一个简单的类来构建 SQL 字符串 仅此而已 我需要它用于 C 和 MySql 我真的不需要像 Linq 或 NHibernate 这样的东西 谢谢 由于 Google 将我引导至此页面 我
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • MySQL+子串怎么做? + 替换?

    我不太擅长 SQL 希望能够变得更好 我在尝试执行某些表操作时遇到一些麻烦 我希望能够从下面的 ProgUID 列中选择子字符串 就像是 SUBSTRING table ProgUID 3 12 这将为我提供 ProgUID P CAMVE
  • ActiveRecord3死锁重试

    Rails 3 或 ActiveRecord 3 是否有任何插件可以复制旧版本死锁重试 http agilewebdevelopment com plugins deadlock retry插入 或者 该插件仍然适用于 Rails 3 吗
  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • 无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地 MySQL 服务器 (2)

    当我尝试连接 mysql 时出现以下错误 Can t connect to local MySQL server through socket var lib mysql mysql sock 2 这个错误有解决办法吗 其背后的原因可能是什
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp

随机推荐

  • 音频基础学习三——声音的时频谱

    文章目录 前言 时域与频域 1 什么是时域 2 什么是频域 3 一张图理解时域和频域 4 意义 总结 前言 在上一篇文章中 我们了解到 任何重复的波形都可以分解为含有基波频率和一系列为基波倍数的谐波的正弦波分量 同时记录了一些基本的波形 本
  • python 用eclipse编辑器编写唐僧打白骨精

    python 用eclipse编辑器编写唐僧打白骨精 coding utf 8 Created on 2019年7月10日 note 唐僧打白骨精 author LSW version 3 0 YaoGj 10 妖怪攻击力 YaoSm 10
  • 如何用echarts画一个好看的饼图

    前言 最近有个需求 需要绘制一个饼图 为此我根据这次需求来整理了一下关于 echarts 饼图绘制的一些知识点 在这次需求中我需要用到的属性我会详细讲解 其他的属性我会粗略地说一下 并加入其他博主的文章的跳转 综合案例在后续博客中更新 注意
  • android动画不占cpu如何实现,【实战总结】帧动画调优实践

    原标题 实战总结 帧动画调优实践 原文链接 https www zybuluo com avenwu note 876161 APP架构师整理发布 转载请联系作者获得授权 1 背景 在做动画的时候我们有很多选择方案 最常见的是Android
  • JBPM4—请假流程

    1 流程图 2 流程配置文件
  • 数据分析之——Adventure项目分析

    文章目录 数据分析 Adventure项目分析 内容摘要 一 项目简介 二 分析思路 三 分析过程 0 数据准备及清洗 1 导入模块 2 简单了解数据 3 数据处理 1 整体销售表现 1 自行车整体销售量表现 2 自行车整体销售金额表现 3
  • 直流电源线缆 高速电缆 分类

    线缆分类 直流电源线缆采用整长发货 现场需要根据实际使用长度进行截取并现场制作电源线 直流电源线缆包括 48V电源线和电源地线RTN 连接配电盒与配电屏的直流电源线缆的长度和接线端子需要根据工勘确定 直接与电源模块连接的直流电源线缆为OT端
  • VUE常用的自定义指令

    v directives 基于 vue 的自定义指令集合 包含 复制粘贴指令 v copy 长按指令 v longpress 输入框防抖指令 v debounce 禁止表情及特殊字符 v emoji 图片懒加载 v LazyLoad 权限校
  • mysql的分组group by

    文章目录 一 介绍 1 分组查询的内容 2 多字段分组 3 将查询内容连接group concat 4 有条件的分组查询having 一 介绍 将某个字段的相同值分为一组 分组查询的结果强调的是一个整体 每组内容只显示一行 分组查询的内容一
  • C语言-蓝桥杯-基础练习 矩阵乘法

    问题描述 给定一个N阶矩阵A 输出A的M次幂 M是非负整数 例如 A 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N M 1 lt N lt 30 0 lt M lt 5 表示矩阵A的阶数和要求的幂数 接下
  • Python爬虫之Js逆向案例(12)-知乎答案批量获取保存到CSV文件

    声明 知乎答案批量获取分析仅用于研究和学习 如有侵权 可联系删除 大家好 本期分享的内容是一个关于批量获取知乎答案的案例 本案例的重点是教大家在写爬虫时如何更规范的去编写自己的爬虫 场景是这样的 最近在帮一位同学排查几个爬虫问题 于是乎我三
  • Pandas实战-Series对象

    本文将主要介绍以下内容 1 Series概述 2 从Python对象创建Series 3 读取最前面和最后面的数据 4 数学运算 5 将Series传递给Python的内置函数 Series是Pandas的两个主要数据结构之一 它是用于存储
  • 强化学习-稀疏奖励

    稀疏奖励 出现的原因 训练agent的时候 多数时候agent获取不到reward 没有奖励或惩罚 乱探索什么也学不到 这是不是奖惩设置不合理的一种体现 解决方案 Reward Shaping Reward shaping 的思想是说环境有
  • Tomcat是如何隔离Web应用的

    Tomcat通过自定义的类加载器WebAppClassLoader打破了双亲委托机制 目的就是为了优化加载Web应用目录下的类 Tomcat 作为 Servlet 容器 它负责加载我们Servlet 类 此外它还负责加载 Servlet 所
  • (LeetCode) 两数相加-----C语言实现【详细讲解】

    目录 1 题目要求如下 2 做题之前我们先来分析一下题目 看看我们究竟要做什么 怎么做 3 下面我们将对代码进行分开讲解 4 最后附上完整的代码供大家学习参考 题目要求如下 给你两个 非空 的链表 表示两个非负的整数 它们每位数字都是按照
  • 用数组slice方法,更新视图

    用数组slice方法 更新视图 定义和用法 slice 方法可从已有的数组中返回选定的元素 slice 方法可提取字符串的某个部分 并以新的字符串返回被提取的部分 注意 slice 方法不会改变原始数组 var fruits Banana
  • HDD/SSD/NVM存储介质

    HDD SSD NVM存储介质 NonVolatile Memory 非易失存储器 具有非易失 按字节存取 存储密度高 低能耗 读写性能接近DRAM 但读写速度不对称 读远快于写 寿命有限 需要像ssd一样考虑磨损均衡 当电流关掉后 所存储
  • proteus8.8版本出现闪退的原因分析和解决方案

    如果 你是刚进入单片机仿真的小朋友 并且也对单片机仿真感兴趣 如遇到下列情况不要着急 这种情况的出现 原因我还没有找到或者说干脆没有分析明白 尝试过重新安装过软件 但未果 但是 对于proteus闪退的情况 可以告诉你一个亲测好用的方法 切
  • AI智能无损放大图片网站

    https bigjpg com
  • 使用superset完成mysql数据库或者hive数据库的数据可视化

    虚拟机安装步骤 注意事项 以下bigdata100均记得更换为bigdata1即可 确保本地电脑已经安装好了VMware Workstation Pro 下载地址 下载 VMware Workstation Pro CN 清华大学镜像源 h