利用商业性可视化工具有如:Tableau、DataV、FineReport、FineBI等可以简捷灵活地进行数据可视化工作,但是需要收费购买;利用前端可视化组件如:ECharts、D3、Three.js等也可以做出丰富的图表页面,但是要求一定的技术基础。开源可视化分析工具如:Bokeh、Matplotlib、Metabase、Superset等首先是无软件成本的,其次是要考虑它们的便捷性。
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
出于安全考虑,并不是所有域名访问后端服务都可以。其实在正式跨域之前,浏览器会根据需要发起一次预检(也就是option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源或者域),还有是否需要Credentials(认证信息)等。那么浏览器在什么情况下能预检呢? 浏览器将CORS请求分为两类:简单请求(simple request)和非简单请求(not-simple-request),简单请求浏览器不会预检,而非简单请求会预检。这两种方式怎么区分?
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的职责