superset

Posted by 夏泽民

利用商业性可视化工具有如:Tableau、DataV、FineReport、FineBI等可以简捷灵活地进行数据可视化工作,但是需要收费购买;利用前端可视化组件如:ECharts、D3、Three.js等也可以做出丰富的图表页面,但是要求一定的技术基础。开源可视化分析工具如:Bokeh、Matplotlib、Metabase、Superset等首先是无软件成本的,其次是要考虑它们的便捷性。



resty.http

Posted by 夏泽民

function httpgettransfer.transfer(source_key, target_key) – ngx.log(ngx.INFO, “params:”, tostring(args)) – ngx.log(ngx.INFO, “headers:”, tostring(receive_headers)) – 引入http请求 local http = require “resty.http” – 常用方法封装 local common = require(“azcommon.commonutils”) – 当前请求的参数 local args = ngx.req.get_uri_args() – 当前的headers local receive_headers = ngx.req.get_headers()

--2、组合url请求Get请求 并获取参数 
--内网地址
local url = ngx.var.url
 
 
-- url = commonutils.concat_url(args, url)
-- ngx.log(ngx.INFO, "Current Url is :", url) 
local httpc = http.new()
-- ms
-- https://github.com/ledgetech/lua-resty-http#set_timeouts
httpc:set_timeouts(8000, 8000, 8000)
local res, err = httpc:request_uri(url, { 
	method = "GET", 
	headers = receive_headers,
	query = args
}) 
if err == nil then
	-- 这里进行数据的重新封装
	--local cjson = require "cjson"
	--local currentData = cjson.decode(res.body);
	--local returnData = {}
	--returnData["mytotal"] = currentData["total"]
	--returnData["mylist"] = currentData["list"]
	
	--ngx.say(cjson.encode(returnData))
	-- 替换操作 加上双引号和封号匹配度更高 缺点,会替换文本中的数据
	local resStr = res.body
	-- 遍历数组进行替换
	for i = 1, #source_key do  
		-- ngx.log(ngx.INFO, "source value:", common.parse_json_key(source_key[i])) 
		
		resStr = string.gsub(resStr,common.parse_json_key(source_key[i]),common.parse_json_key(target_key[i]))
	end 
	
	ngx.status = res.status
	ngx.header["Content-Type"] = "application/json; charset=utf-8"
	ngx.say(resStr)
else
	ngx.log(ngx.ERR, "err:", err) 
	ngx.status = 500
	ngx.say(err)
end
http:close() end <!-- more --> https://blog.csdn.net/qq_28929589/article/details/103375017


http跨域时的options请求

Posted by 夏泽民

出于安全考虑,并不是所有域名访问后端服务都可以。其实在正式跨域之前,浏览器会根据需要发起一次预检(也就是option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源或者域),还有是否需要Credentials(认证信息)等。那么浏览器在什么情况下能预检呢? 浏览器将CORS请求分为两类:简单请求(simple request)和非简单请求(not-simple-request),简单请求浏览器不会预检,而非简单请求会预检。这两种方式怎么区分?



master node

Posted by 夏泽民

Master-eligible nodes和Master eligible节点 每个节点启动后,默认就是一个Master eligible节点,可以设置node.master:false禁止 Master-eligible节点可以参加选主流程,成为Master节点 当第一个节点启动时候,它会将自己选举成Master节点 每个节点都保存了集群的状态,只有Master节点才能修改集群的状态信息 集群状态(Cluster Starte),维护了一个集群中,必要的信息 所有的节点信息 所有的索引和其相关的Mapping与Setting信息 分片的路由信息 Data Node 可以保存数据的节点,叫做Data Node.负责保存分片数据.在数据扩展上起到至关重要的作用 Coordinating Node 负责接受Client的请求,将请求分发到合适的节点,最终把结果汇聚到一起 每个节点默认起到了Coordinating Node的职责



innodb加锁状态查询

Posted by 夏泽民

https://dev.mysql.com/doc/refman/5.7/en/innodb-locks-set.html



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required