通过公共API访问导入数据到OpenTSDB

OpenTSDB数据写入 OpenTSDB写入 阅读详情

 

更新时间: 2018-09-26 10:56

查看PDF

SQL应用

使用SQL方式编写一个完整的对接OpenTSDB代码的步骤如下:

  1. 创建SparkSession。

     

    import org.apache.spark.sql.SparkSession
    val sparkSession = SparkSession.builder().getOrCreate()

     

  2. 传入认证参数。

     

    val sparkConf = sparkSession. conf
    sparkConf.set(\"spark.sql.datasource.cloudtable.api.domain\", \"cloudtable-api.cloudtable.com:8080\") 
    sparkConf.set(\"spark.sql.datasource.cloudtable.token\", \"Your_token_value \")
    sparkConf.set(\"spark.sql.datasource.cloudtable.projectid\", \"Your_project_id\")

     

  3. 创建关联OpenTSDB表。

     

    sparkSession.sql("create table opentsdb_test using opentsdb options(
           \"clusterid\"=\"834f2b81-9a24-42ed-98a9-4513221ef202\", 
           \"metric\"=\"city\", 
           \"tags\"=\"location,name\")
    ")

     

  4. 导入数据到OpenTSDB。

     

    sparkSession.sql("insert into opentsdb_test values(\"futian\", \"huangwei\", \"2018-05-03 00:00:00\", 30.0)")

     

  5. 读取OpenTSDB上的数据。

     

    sparkSession.sql("select * from opentsdb_test").collect()

     

RDD应用

使用RDD方式编写一个完整的对接OpenTSDB代码的步骤如下:

  1. 创建SparkSession。

     

    import scala.collection.mutable
    import org.apache.spark.sql.{Row, SparkSession}
    import org.apache.spark.rdd.RDD
    import org.apache.spark.sql.types._
    val sparkSession = SparkSession.builder().getOrCreate()

     

  2. 传入认证参数。

     

    val sparkConf = sparkSession.conf
    sparkConf.set(\"spark.sql.datasource.cloudtable.api.domain\", \"cloudtable-api.cloudtable.com:8080\") 
    sparkConf.set(\"spark.sql.datasource.cloudtable.token\", \"Your_token_value \")
    sparkConf.set(\"spark.sql.datasource.cloudtable.projectid\", \"Your_project_id\")

     

  3. 使用创建关联OpenTSDB表的sql语句创建一张OpenTSDB表。

     

    sparkSession.sql("create table opentsdb_test using opentsdb options(
        \"clusterid\"=\"834f2b81-9a24-42ed-98a9-4513221ef202\", 
        \"metric\"=\"city\",
        \"tags\"=\"location,name\")
    ")

     

  4. 构造导入到OpenTSDB的数据。

     

    // 构造schema
    val attrTag1Location = new StructField("location", StringType)
    val attrTag2Name = new StructField("name", StringType)
    val attrTimestamp = new StructField("timestamp", LongType)
    val attrValue = new StructField("value", DoubleType)
    val attrs = Array(attrTag1Location, attrTag2Name, attrTimestamp, attrValue)
     
    // 根据schema的类型构造数据
    val mutableRow: Seq[Any] = Seq("futian", "huawei", 123456L, 30.0)
    val rddData: RDD[Row] = sparkSession.sparkContext.parallelize(Array(Row.fromSeq(mutableRow)), 1)

     

  5. 导入数据到OpenTSDB。

     

    sparkSession.createDataFrame(rddData, new StructType(attrs))
          .write
          .insertInto("opentsdb_test")

     

  6. 读取OpenTSDB上的数据。

     

    // 准备访问OpenTSDB需要的参数
    val map = new mutable.HashMap[String, String]()
    map("metric") = "city"
    map("tags") = "location,name"
    map("clusterid") = "834f2b81-9a24-42ed-98a9-4513221ef202"
    sparkSession.read.format("opentsdb").options(map.toMap).load().collect

     

父主题: 对接OpenTSDB

上一篇: 对接OpenTSDB

ASP网上报修系统源码剖析:从经典架构到现代重构实战 在Web开发领域,理解经典架构的演进是掌握现代技术栈的重要基础。ASP(Active Server Pages)作为早期动态网页技术,通过服务器端脚本执行实现数据交互,其核心价值在于直观展示了Web应用从请求到响应的完整生命周期。这种技术虽然已被现代框架取代,但其揭示的**SQL注入**安全风险与**状态机**设计模式,仍是当前工程实践中必须掌握的基础概念。通过剖析一个典型的ASP网上报修系统,开发者可以深入理解表单处理、会话管理和数据库操作等底层原理,这些知识对于构建安全的现代应用至关重要。本文以工单管理 阅读详情

相关推荐

Prometheus监控实践:从核心设计到告警体系全解析

在 IT 运维与云原生架构中,时间序列监控系统是保障服务稳定性的核心基础设施。Prometheus 以拉取模型与多维标签数据模型,为基础设施和微服务提供高效采集与灵活聚合能力。通过 PromQL 查询语言和 Exporter 生态,使用者能对指标进行深度分析并快速定位异常;结合 Alertmanager 告警管控与 Grafana 可视化面板,可构建完整可观测闭环。无论 Kubernetes 容器平台还是传统服务器监控,掌握 Prometheus 的标签设计与查询逻辑,都是提升工程效率的关键。

weixin_34293059的博客 409

OpenTSDB写数据(一)

写在前面 写入的一些配置和设计会对OpenTSDB数据库性能产生影响,所以这不单单是简单的数据输入,第一部分主要是对数据的写入规范。 原地址http://opentsdb.net/docs/build/html/user_guide/writing/index.html 写数据(Writing Data) 您可能希望直接进入并开始将数据投入TSD,但要真正利用OpenTSDB的强大功能和灵...

jyj019的博客 3486

基于postman的OpenTSDB HTTP 写入

基于postman的OpenTSDB HTTP 写入,自己编写,值得下载

OpenTSDB 写入介绍

OpenTSDB支持几种写入方式。包括Telnet API、HTTP API、import方式、客户端采集器(tcollector/telegraf)。Telnet适合测试用,tcollector/telegraf是日志采集客户端可用于流式加载日志,import方式适合批量导入数据。当然,最后还有一种方式就是直接写入Hbase(官网不推荐),这样OpenTSDB也可以直接展示数据。

xsdxs的博客 8848

hbase+opentsdb+grafana视图展现

自己写的文档,根据自己的实践经验编写,实现hbase+opentsdb+grafana视图展现

Linux基础——“C语言高级编程” C语言中的细节你真的知道吗?

文章目录GCC简介 GCC简介 gcc 所支持后缀名解释 .c c原始程序 .C / .cc /.cxx C++原始程

weixin_44278698的博客 2513

OpenTSDB数据写入 - 数据库其他综合

首页 > 教程中心 > Mysql教程 > OpenTSDB数据写入 - 数据库其他综合 发表文章 OpenTSDB数据写入 - 数据库其他综合 作者:用户 来源:互联网 时间:2017-03-13 09:24:46 数据库 openTsDb OpenTSDB数据写入 导入数据方式 摘要: OpenTSDB支持几种写入方式。包括Telnet API、HTTP API、i...

大JAVA解决方案 777

STM32的DMA模块及Protues仿真实验

(一)DMA简介      DMA(Direct Memory Access,直接存储器访问), 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。可以在无需任何 CPU 操作的情况下通过 DMA 快速移动数据。这样节省的 CPU 资源可 供其它操作使用。      STM32F407共有两个 DMA 控制器,总共有 16 个数据流(每个控制器 8 个),每一个 DMA 控制器都用于管理 一个或多

weixin_45930204的博客 2850

OpenTSDB HTTP API 概述

文章目录HTTP APIOverviewVersion 1.X to 2.xSerializersAuthentication/PermissionsResponse CodesErrorsExample Error ResultVerbsAPI VersioningQuery String Vs. Body ContentCompressed RequestsCORSDocumentationDeprecated APIAPI Endpoints HTTP API 原文地址 :http://opents

有问题的请私信或关注v【技术印记】留言 936

SAP PI实战:5分钟搞定REST适配器同步接口配置(含Postman测试技巧)

本文详细介绍了如何在SAP PI中快速配置REST适配器同步接口,包括ESR设计、集成流配置及Postman测试技巧。通过实战步骤和关键参数设置,帮助开发者高效实现系统集成,特别适合需要实时数据交互的业务场景。

weixin_33738555的博客 485

LLM推理服务中的SLO感知调度优化实践

在AI服务架构中,服务级别目标(SLO)是衡量服务质量的核心指标,特别是在大型语言模型(LLM)推理场景下。SLO通常涉及TTFT(首token时间)、TPOT(每token生成时间)和端到端延迟等关键维度,这些指标直接影响用户体验和系统效率。传统FCFS调度策略由于缺乏SLO感知能力,在混合负载下往往导致资源利用率低下和SLO达标率骤降。通过引入基于模拟退火的动态调度算法和精准的延迟预测模型,可以实现对不同优先级请求的智能调度,显著提升GPU利用率和SLO达标率。这种技术方案特别适用于需要同时处理实时对话

weixin_42549154的博客 372

openTSDB详解之HTTP API

openTSDB详解之HTTP API openTSDB 提供了一个基于HTTP应用的编程接口,为了与外部系统集成。几乎所有的openTSDB特点就是可以通过API访问得到,诸如:查询时间序列数据,管理元数据以及存储数据点。请阅读这个完整的页面为了重要的信息关于标准的API行为,在详细探究单独的端点时。 Overview HTTP API本质上是RESTful,但是提供了可选的访问,通过不同...

说文科技,做有态度的研究。 3989

【数据中台】数据中台架构搭建百科全书

0、前言 当前,大部分企业不再建设从源数据采集到分析应用的烟囱式系统,更倾向于数据集中采集、存储,并应用分层建设。这种方式一方面有利于应用系统的快速部署,另一方面也保证了数据的集中管理与运营,体现数据的资产、资源属性。 数据中台的出现弥补了数据开发和应用开发之间由于开发速度不匹配而出现的响应力不足等缺陷问题。 数据中台是国内学者提出的概念,起始于阿里的“大中台、小前台”概念。阿里的中台是从管理的角度出发,以中台事业部集中数据搜索,技术及产品,数据共享等多个部门的功能。其他组织或企业建设数据中台不一定需

Sunny的专栏 8407

【翻译】OpenTSDB 2.3 文档--HTTP API介绍

HTTP API OpenTSDB提供基于HTTP的应用程序编程接口,以实现与外部系统的集成。几乎所有OpenTSDB功能都可通过API访问,例如查询时间序列数据,管理元数据和存储数据点。在研究各数据点信息之前,请阅读整个页面以获取有关标准API行为的重要信息。 概览 HTTP API本质上是RESTful,通过实现RESTful来对外支持访问,并非所有客户端都遵循严格的REST协议。默认数据交换...

qq_36101933的博客 623

WSL2安装(详细过程)

适用于 Linux 的 windows 子系统允许开发人员直接在 Windows 上运行 GNU/Linux 环境 -- 包括大多数命令行工具、实用程序和应用程序,无需修改,而无需传统虚拟机或dualbot设置的开销。

qq_43636384的博客 3万+

多模型动态路由(Fusion):从“算力霸权”到“架构分权”的工程范式转型

多模型动态路由(Multi-Model Dynamic Routing)是指在多个大语言模型之间,根据请求特征、资源约束和业务目标,动态选择最优模型或模型组合的技术范式。传统网关擅长管理请求流量,但不理解“任务类型”。而AI路由层需要对每个请求进行语义理解、能力匹配和成本评估。从“算力霸权”到“架构分权”,这不是技术的线性演进,而是工程范式的根本转型。过去三年,开发者的核心能力是“选对模型”——在GPT、Claude、Gemini之间做出正确选择。

ZDQ58818的博客 76

DataX TSDBWriter 插件实战指南:通过 HTTP API 批量写入 Lindorm TSDB / HiTSDB

本篇技术指南以阿里云 DataX(数据集成工具)中的 `tsdbwriter` 插件为主体,完整讲解如何将数据点经 HTTP API 批量写入云原生多模数据库 Lindorm TSDB(以及兼容的 HiTSDB 2.4.x+ 实例),涵盖多值/单值两种写入协议的配置样例、全部参数语义、类型映射规则,并结合仓库源码剖析批量写入、失败重试与错误处理机制,帮助读者在 IoT 设备监控、能源管理系统(EM

gitblog_01038的博客 305

Python与CAD系列基础篇(二)创建点和直线并修改样式

①通过pyautocad连接AutoCAD进行处理②通过ezdxf处理dxf格式文件。创建和编辑点和直线的方法,并演示如何修改它们的样式、颜色和线型。

weixin_43894929的博客 3038

tplink 文件服务器,tplink云存储服务器地址

tplink云存储服务器地址 内容精选换一换云备份提供申请即用的备份服务,使您的数据更加安全可靠。例如,当云服务器或磁盘出现故障或者人为错误导致数据误删时,可以自助快速恢复数据。本节操作介绍备份云服务器和云硬盘的操作步骤。目前弹性云服务器备份可以通过“云服务器备份”和“云硬盘备份”功能实现:云服务器备份(推荐):如果是对弹性云服务器中的所有云硬盘(系统盘和数据盘)进行备份,推荐使用在您申请了云耀云...

weixin_27605509的博客 985

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TDengine 零代码数据写入实战:通过 taosExplorer + taosX 将 MQTT 数据接入 TDengine

本文是一篇面向实战的接入指南:以 MQTT 为例,完整演示如何在 TDengine 的可视化管理工具 taosExplorer 中,通过 taosX 零代码创建 MQTT 数据写入任务,将外部 Broker 上的 JSON 电表消息实时写入超级表,并在任务列表中监控运行状态、查询入库数据。读完本文,你将掌握"配置数据源 → 解析消息体 → 字段映射 → 提交任务 → 验证数据"的完整链路,并理解其

gitblog_00787的博客 299

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TDengine 快速上手实战指南:环境部署、数据建模、写入查询与订阅全流程

TDengine 是一款面向物联网(IoT)、IT 运维监控、金融交易等场景的高性能时序数据库(Time Series Database,TSDB)。本文基于 TDengine 开源仓库官方"快速上手"章节,以智能电表数据模型为主线,带你完成从环境安装、核心概念理解、SQL 数据建模,到数据写入、窗口聚合查询与数据订阅的完整闭环。读完本文,你将掌握使用 `taos` shell、`taosBenc

gitblog_01084的博客 352

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TDengine 智能制造实践:设备接入、宽表分析与边云数据同步全指南

本文以 TDengine 在智能制造领域的落地实践为主线,系统梳理工业制造场景中海量设备数据采集、多维分析、插值查询与边云协同数据同步的完整技术方案。文章以真实烟厂项目为案例,结合当前开源仓库中的 SQL 语法文档、流式计算引擎与查询执行源码,帮助读者掌握:如何用"一台设备一张表"的物模型承载数十万测点、如何用超级表标签与插值查询解决报表统计难题、如何通过流式计算与订阅机制实现工厂到集团中心的数据

gitblog_00756的博客 66

UI Bootstrap 版本演进全解:AngularJS Bootstrap 指令库 CHANGELOG(0.1.0 → 2.5.0)深度研读

本篇技术指南以本仓库根目录下的 [CHANGELOG.md](https://link.gitcode.com/i/740468b8ff5ae5c9ac9f4ba1da617437) 为主线,系统梳理 angular-ui-bootstrap(为 Bootstrap 提供原生 AngularJS 指令的 UI 库)自 2013 年 0.1.0 首发到 2017 年 2.5.0 全部 40+ 个版本

gitblog_00233的博客 628

Grafana安装记录(zabbix3.2+Grafana4.1.1)

摘要简介安装1,Grafana是 Graphite 和 InfluxDB 仪表盘和图形编辑器。Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 OpenTSDB。Grafana 主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源;Graphite 和 InfluxDB 查询编辑器等等。2,G...

weixin_33953249的博客 117

Docker 学习:术语、使用、Compose、Swarm

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

freeking101的博客 6170

Spark 教程 - Apache Spark 在爱奇艺的应用实践

爱奇艺作为中国领先的在线视频平台之一,广泛采用了Apache Spark来支持其大数据处理需求,涵盖了离线计算、流计算、数据同步和数据分析等多个场景。

qq_33240556的博客 623
上一篇: 用sqoop将mysql的数据导入到hive表中
下一篇: 天数润科开源贡献 OpenTSDB-Keeper
王树民
博客等级 码龄10年 912粉丝 560原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值