<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lbship的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lbship</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lbship]]></copyright><item><title><![CDATA[BI自动化之Python自动发报告(查询数据库生成报表和图片嵌入邮件)]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/122937087</link><guid>https://blog.youkuaiyun.com/lbship/article/details/122937087</guid><author>lbship</author><pubDate>Tue, 15 Feb 2022 10:27:42 +0800</pubDate><description><![CDATA[先看看效果图





代码：

1.生成图片

新建generate_picture.py，主要功能是查询数据库，生成图片和附件用于嵌入邮件


import matplotlib.pyplot as plt
from odps import ODPS
import datetime
import time
import os
import shutil
from matplotlib import style
# print(plt.style.available)
#先清除文件夹底下所有文件
p...]]></description><category></category></item><item><title><![CDATA[利用Flink CDC和Flink SQL构建实时数仓Flink写入Doris]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/114839662</link><guid>https://blog.youkuaiyun.com/lbship/article/details/114839662</guid><author>lbship</author><pubDate>Sun, 14 Nov 2021 11:46:28 +0800</pubDate><description><![CDATA[一、MySQL 开启binlog日志、创建用户

1.开启bin log

MySQL 8.0默认开启了binlog，可以通过代码show variables like "%log_bin%";查询是否开启了，show variables like "%server_id%";查询服务器ID。



上图分别显示了bin long是否开启以及bin log所在的位置。

2.创建用户

CREATE USER 'flinktest' IDENTIFIED BY 'root';

GRANT SELECT, ]]></description><category></category></item><item><title><![CDATA[Python选基金(爬虫+策略)]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/117985012</link><guid>https://blog.youkuaiyun.com/lbship/article/details/117985012</guid><author>lbship</author><pubDate>Fri, 25 Jun 2021 11:33:55 +0800</pubDate><description><![CDATA[代码如下


import requests
import time
import re
import pymysql
#获得所有基金代码
def getfundCode():
    url = 'http://fund.eastmoney.com/js/fundcode_search.js'
    r = requests.get(url)
    fundcodelist=re.findall(re.compile('\[(.*)\]',re.S),r.text)[0].strip('[').str]]></description><category></category></item><item><title><![CDATA[免费软件制作大屏酷炫报表-Davinci安装与使用]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/117297264</link><guid>https://blog.youkuaiyun.com/lbship/article/details/117297264</guid><author>lbship</author><pubDate>Mon, 31 May 2021 12:08:55 +0800</pubDate><description><![CDATA[一、简介

  Davinci 是一个 DVaaS（Data Visualization as a Service）平台解决方案，面向业务人员/数据工程师/数据分析师/数据科学家，致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立部署使用，也可作为可视化插件集成到三方系统。用户只需在可视化 UI 上简单配置即可服务多种数据可视化应用，并支持高级交互/行业分析/模式探索/社交智能等可视化功能。官网在这里。

安装环境

CentOS8

Mysql8

二、安装

1.下载

wgetht...]]></description><category></category></item><item><title><![CDATA[SuperSet安装与使用]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/117228350</link><guid>https://blog.youkuaiyun.com/lbship/article/details/117228350</guid><author>lbship</author><pubDate>Wed, 26 May 2021 14:10:39 +0800</pubDate><description><![CDATA[一、安装

1.安装docker

如果没有安装docker可以看这里K8S原理、安装和部署

2.安装dockers-compose


sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-comp]]></description><category></category></item><item><title><![CDATA[Flink on K8s安装与使用]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/116536108</link><guid>https://blog.youkuaiyun.com/lbship/article/details/116536108</guid><author>lbship</author><pubDate>Wed, 19 May 2021 11:13:10 +0800</pubDate><description><![CDATA[1.安装K8S

2.安装Helm

Helm可以帮忙管理k8s的应用。


curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh


]]></description><category></category></item><item><title><![CDATA[K8S原理、安装和部署]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/112392624</link><guid>https://blog.youkuaiyun.com/lbship/article/details/112392624</guid><author>lbship</author><pubDate>Sat, 08 May 2021 10:04:12 +0800</pubDate><description><![CDATA[参考:Kubernetes中文文档

一、K8S架构和原理

首先看一下K8S的架构图，方便对组件有所了解



Master主要有以下组件:

apiserver: K8s的网关，提供了资源操作的唯一入口，并提供认证、授权、访问控制、API注册和发现等机制，；
	controller manager负责维护集群的状态，比如故障检测、自动扩展、滚动更新等，类似于CRUD，不直接调度node节点，而是把指令给Apiserver存储在etcd中；
	scheduler负责资源的调度，按照预定的调度策略将Pod调]]></description><category></category></item><item><title><![CDATA[基于机器学习预测用户流失]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/114170043</link><guid>https://blog.youkuaiyun.com/lbship/article/details/114170043</guid><author>lbship</author><pubDate>Thu, 04 Mar 2021 14:06:46 +0800</pubDate><description><![CDATA[一、背景和目标

  用户运营是CRM运营中重中之重的一项工作，在人工智能时代，我们可以探索用AI帮助我们做一些用户运营的工作，之前我写了几篇关于快消行业与AI技术相结合的文章：

1.利用RFM模型对餐饮客户进行分析

2.利用Apriori关联算法看看客户最喜欢买什么

3.利用ARMA算法对销售进行预测

4.利用深度学习和机器学习对餐饮客户进行分类

本次探索一下利用AI来预测用户流失。

二、数据采集和准备

 数据采集分为几个模块:用户基本信息、消费产品偏好、消费渠道偏好、LBS信息...]]></description><category></category></item><item><title><![CDATA[Apache Doris安装与使用]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/113247127</link><guid>https://blog.youkuaiyun.com/lbship/article/details/113247127</guid><author>lbship</author><pubDate>Wed, 27 Jan 2021 16:35:14 +0800</pubDate><description><![CDATA[社区推荐是自己编译,官网在这里，过程相当简单，就一句话 sh build.sh，但是在编译过程中容易遇到各种失败，例如Failed to download DataTables.zip during the compilation of the third-party library就需要更改下载数据源，更改完这个可能还有其他问题，这里就用已编译版本了。

Doris架构也很简单，分成FE(front end)和BE(back end):

FE 的磁盘空间主要用于存储元数据，包括日志和 image。通常从]]></description><category></category></item><item><title><![CDATA[Flink解析kafka的json字段并利用Flink CEP实时监控订单数据写入MySQL]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/109517017</link><guid>https://blog.youkuaiyun.com/lbship/article/details/109517017</guid><author>lbship</author><pubDate>Thu, 07 Jan 2021 16:38:00 +0800</pubDate><description><![CDATA[上篇博客写了Flink接入Kafka数据并实时写入数据库实时展示，这次利用Flink CEP进行实时监控。

实现目标如下：

1.如果同一个顾客买了5次牛奶，输出用户id，时间

2.如果2分钟内某个产品被卖了10个，输出商品，时间

3.如果一个顾客来了10次，输出用户id，初始消费时间，最后消费时间



先了解一下Flink CEP 开发过程:

a.定义Pattern

b.把pattern应用于输入流CEP.pattern(inputstream, pattern) 变成patternstr..]]></description><category></category></item><item><title><![CDATA[Python请求微信公众号解析json写入Maxcompute]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/111192877</link><guid>https://blog.youkuaiyun.com/lbship/article/details/111192877</guid><author>lbship</author><pubDate>Tue, 15 Dec 2020 10:33:35 +0800</pubDate><description><![CDATA[实现过程: Python发送请求获得微信公众号返回的json数据，微信公众号接口看这里。利用Python的json包解析出来需要的字段，利用阿里云的pyODPS包，写入阿里云的maxcompute

代码如下:


from odps import ODPS
from odps.models import Schema, Column, Partition
import requests
import json
import  datetime
import redis

#参数定义
#r = redis.]]></description><category></category></item><item><title><![CDATA[SQL求会员每次消费时间间隔和平均消费间隔]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/109736784</link><guid>https://blog.youkuaiyun.com/lbship/article/details/109736784</guid><author>lbship</author><pubDate>Tue, 17 Nov 2020 10:31:52 +0800</pubDate><description><![CDATA[有一个表记录了每个会员的消费时间，如下，有的会员消费了N次，有的会员只消费过一次，现在要求出每个会员两两之间消费时间间隔




select *,LEAD(purtime, 1, 0)over(partition by userid order by purtime) as lastpurtime   from #test 
order by userid,purtime



看到




...]]></description><category></category></item><item><title><![CDATA[Flink实时读取Kafka数据写入Clickhouse并实时展示]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/108004885</link><guid>https://blog.youkuaiyun.com/lbship/article/details/108004885</guid><author>lbship</author><pubDate>Fri, 30 Oct 2020 17:43:05 +0800</pubDate><description><![CDATA[1.启动ZooKeeper

./zkServer.sh start

.2.启动Kafka

./kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

3.创建topic

./kafka-topics.sh --create --zookeeper 192.168.226.10:2181 --replication-factor 1 --partitions 1 --topic test

查看是否成功

./kafka-]]></description><category></category></item><item><title><![CDATA[SQL Server不用创建函数，实现Split函数指定分隔符分割以及判断是否为整数]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/106280274</link><guid>https://blog.youkuaiyun.com/lbship/article/details/106280274</guid><author>lbship</author><pubDate>Fri, 22 May 2020 15:09:19 +0800</pubDate><description><![CDATA[例如有一个字段是姓名/电话，分隔符是"/",姓名长度不一，网上很多教程都是创建函数来实现，其实不用创建函数也可以实现,这里只需要用到charindex这个函数就够了。

例子，:



用法

select left([info],charindex('/',[info])-1) as names ,right([info],len([info])-charindex('/',[info])) as phone
from #test

效果:




...]]></description><category></category></item><item><title><![CDATA[Tableau计算同比和环比任意天数据]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/106082179</link><guid>https://blog.youkuaiyun.com/lbship/article/details/106082179</guid><author>lbship</author><pubDate>Tue, 12 May 2020 18:18:51 +0800</pubDate><description><![CDATA[网上看了很多帖子，要实现同比和环比都是用lookup函数，但是如果我要同时看很多维度的同比，数据并没有顺序，操作起来就比较麻烦了。

现在用一个比较简单的fixed函数来实现这个功能。看看fixed函数的用法:



例如，我要看某城市昨天相比上周同一天的销售增长。

首先，计算昨天的销售额，创建计算函数

{FIXED [StoreID] : SUM(if [SalesDate]=TODAY()-1 then [netsales] end)}



然后计算上周同一天的销售额



最后计...]]></description><category></category></item><item><title><![CDATA[Tableau实现增量刷新]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/103201128</link><guid>https://blog.youkuaiyun.com/lbship/article/details/103201128</guid><author>lbship</author><pubDate>Fri, 22 Nov 2019 15:09:30 +0800</pubDate><description><![CDATA[为了节省tableau的刷新时间，有时候我们只需要增量刷新就可以了，设置如下图:

选择菜单栏的 数据-提取刷新-所有行-增量刷新，然后再选择对应的增量标识符就可以了，比如我选择的是日期(DOB)





当然你也可以选择前多少行或者根据筛选器条件进行筛选刷新
...]]></description><category></category></item><item><title><![CDATA[SQL查询的时候同时显示明细和总计]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/100032290</link><guid>https://blog.youkuaiyun.com/lbship/article/details/100032290</guid><author>lbship</author><pubDate>Fri, 23 Aug 2019 10:28:43 +0800</pubDate><description><![CDATA[当我们要查询明细和总计的时候，通常使用的方法是

方法一：

select item ,sum(xx) from xxx group by item

union

select null ,sum(xx) from xxx

方法二：

但是SQL server其实有两个简单的函数可以实现上面的功能

Rollup ():分组同时求明细

Grouping():判断是否是分组的列，1表示聚合列...]]></description><category></category></item><item><title><![CDATA[触发器设置错误导致sa账号无法登陆Logon failed for login 'sa' due to trigger execution]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/100013316</link><guid>https://blog.youkuaiyun.com/lbship/article/details/100013316</guid><author>lbship</author><pubDate>Thu, 22 Aug 2019 13:49:09 +0800</pubDate><description><![CDATA[前几天手痒，练习触发器，本来想查看谁登陆，用什么机器登陆，结果参数设置错误，没有把正确的账号和机器名称添加白名单，导致失败了，sa被锁。



Logon failed for login 'sa' due to trigger execution

到我创建的触发器看，疯了，添加了三个不搭噶的主机，用户名，关键LOGINAME这个用户名也没有密码啊。



跑到数据库主机，用本地模式登陆，还是不...]]></description><category></category></item><item><title><![CDATA[Python连接AZURE Data Warehouse]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/99678363</link><guid>https://blog.youkuaiyun.com/lbship/article/details/99678363</guid><author>lbship</author><pubDate>Fri, 16 Aug 2019 15:03:16 +0800</pubDate><description><![CDATA[talk is cheap，直接上代码


import pyodbc
Server = "xxxxxx"
DB = "txxxx"
User = "xxxxx"
Password = "xxxxxx"

conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + Server + ';DATABASE=' + ...]]></description><category></category></item><item><title><![CDATA[从Mysql搬数据到SQL server报错 The (maximum) expected data length is 28, while the returned data length is 0]]></title><link>https://blog.youkuaiyun.com/lbship/article/details/98941891</link><guid>https://blog.youkuaiyun.com/lbship/article/details/98941891</guid><author>lbship</author><pubDate>Fri, 09 Aug 2019 10:16:22 +0800</pubDate><description><![CDATA[前不久写了一篇文章跨数据库数据传输:利用ODBC从MySQL传输数据到SQL server介绍了通过ODBC的方式，把数据从MySQL迁移到SQL Server,但是在迁移的过程中，你会发现很多头疼的报错。

比如下面这条:

Msg 7347, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' for linked server 'MYSQL...]]></description><category></category></item></channel></rss>