ASP.NET Core 2 읽 기 및 쓰기 InfluxDB 순차 데이터베이스 방법 튜 토리 얼

머리말
우리 의 많은 응용 에서 일련의 시간 을 바탕 으로 하 는 데 이 터 를 처리 해 야 한다.시간의 순 서 를 통 해 이런 데이터 점 을 선 으로 연결 한 다음 에 데이터 통 계 를 통 해 다 위도 보고 서 를 만 들 수도 있 고 기계 학습 을 통 해 데이터 의 예측 경 고 를 실현 할 수도 있다.타 이 밍 데이터 베 이 스 는 이러한 시간 순서 데 이 터 를 저장 하고 관리 하 는 데 사용 되 며 타 이 밍 데이터 베 이 스 는 일반적으로 타 이 밍 데이터 의 빠 른 기록,지속 화,다 위도 집합 조회 등 기본 기능 을 지원 합 니 다.
InfluxDB 소개
InfluxDB 는 시간 서열 데 이 터 를 기반 으로 개발 한 고성능 데이터 저장 플랫폼 으로 순차 데 이 터 를 높 은 스루풋 으로 섭취 하고 압축 하 며 실시 간 으로 조회 할 수 있다.InfluxDB 는 Go 언어 로 작 성 된 것 으로 외부 의존 이 없 는 바 이 너 리 파일 로 컴 파일 되 어 자바,자바 스 크 립 트,c\#등 언어 를 지원 합 니 다.InfluxDB 는 SQL 과 유사 한 조회 언어 를 지원 하 며 정규 표현 식,산술 표현 식,시간 서열 특정 함수 도 지원 하여 데이터 처리 효율 을 가속 화 합 니 다.다음은 InfluxDB 와 관련 된 사이트 입 니 다.
InfluxDB 홈 페이지:https://www.influxdata.com/
InfluxDB 공식 문서:https://docs.influxdata.com/influxdb/
InfluxDB 공식 다운로드:https://portal.influxdata.com/downloads
InfluxDB 클 라 이언 트 도구 다운로드:https://docs.influxdata.com/influxdb/v1.6/tools/api_client_libraries/
특징:
4.567917.구조 없 음(모드 없 음):임 의 수량의 열 일 수 있 습 니 다metric 의 저장 시간 을 설정 할 수 있 습 니 다
  • 시간 과 관련 된 함수(예 를 들 어 min,max,sum,count,mean,median 등)를 지원 하고 통계 하기 편리 합 니 다
  • 4.567917.저장 정책 지원:데이터 삭제 에 사용 할 수 있 습 니 다.(influxDB 는 데이터 삭제 및 수정 방법 을 제공 하지 않 았 습 니 다)4.567917.연속 조 회 를 지원 합 니 다.데이터 베이스 에서 자동 으로 정시 에 시작 하 는 구문 입 니 다.저장 전략 과 조합 하면 InfluxDB 의 시스템 이 차지 하 는 용량 을 낮 출 수 있 습 니 다
  • 네 이 티 브 HTTP 지원,내 장 된 HTTP API
  • sql 문법 과 유사 한 것 을 지원 합 니 다
  • 클 러 스 터 에 설 치 된 데이터 의 사본 수 를 지원 합 니 다
  • 4.567917.정기 적 으로 샘플링 데 이 터 를 지원 하고 다른 measurement 을 기록 하여 입도 별로 데 이 터 를 저장 할 수 있 습 니 다
  • 자체 웹 관리 인터페이스,편리 하 게 사용(로그 인 방식:http:/:8083)
  • InfluxDB 조작
    인 플 루 룩 스 DB 를 어떻게 조작 하 는 지 간단하게 소개 하 겠 습 니 다.이런 조작 을 통 해 기본적으로 업무 상의 수 요 를 만족 시 킬 수 있 습 니 다.influx DB 를 조작 하면 명령 행 도 구 를 사용 할 수 있 고 소스 를 여 는 클 라 이언 트 도 구 를 사용 할 수 있 습 니 다.저 는'influx DBStudio'라 는 이름 으로 C\#를 기반 으로 작 성 된 소스 오픈 도 구 를 사용 합 니 다.자주 사용 하 는 코드 는 다음 과 같 습 니 다.
    
    #    
    show users
    
    #    
    create user "username" with password 'password'
    
    #         
    create user "username" with password 'password' with all privileges
    
    #    
    drop user "username"
    
    #     
    create database "db_name"
    
    #        
    show databases
    
    #     
    drop database "db_name"
    
    #     
    use db_name
    
    #           
    show measurements
    
    #   ,              ,  test   
    insert test,host=127.0.0.1,monitor_name=test count=1
    
    #   
    drop measurement "measurement_name"
    
    #    
    select * from test order by time desc
    
    #              (Retention Policies)
    show retention policies on "db_name"
    
    #          
    #rp_name:   
    #db_name:       ;
    #3w:  3 ,3          ,influxdb        ,  :h(  ),d( ),w(  )
    #replication 1:    ,   1    
    #default:       
    create retention policy "rp_name" on "db_name" duration 3w replication 1 default
    
    #        
    alter retention policy "rp_name" on "db_name" duration 30d default
    
    #        
    drop retention policy "rp_name"
    
    #          (Continous Queries)
    show continuous queries
    
    #        (Continous Queries)
    #cq_name:      
    #db_name:     
    #sum(count):    
    #table_name:    
    #new_table_name:        
    #30m:     30  
    create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
    
    #      
    drop continous query cp_name on db_name
    이루어지다
    상술 한 소개 와 조작 을 통 해 우 리 는 이미 기본적으로 InfluxDB 데이터베이스 에 익숙 해 졌 다.그러면 다음은 ASP.NET Core 2 프로그램 에서 InfluxDB 데이터 베 이 스 를 어떻게 읽 고 쓰 는 지 살 펴 보 자.여기 서 우 리 는'InfluxData.Net'이라는 제3자 라 이브 러 리 를 빌려 InfluxDB 와 상호작용 을 한다.'InfluxData.Net'라 이브 러 리 를 바탕 으로 데이터 베 이 스 를 간단하게 읽 고 쓸 수 있다.ASP.NET Core 2 프로젝트 에서 Nuget 관리 자 를 통 해"InfluxData.Net"라 이브 러 리 를 참조 한 후 구현 코드 를 입력 하면 다음 과 같 습 니 다.
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using InfluxData.Net.Common.Enums;
    using InfluxData.Net.InfluxDb;
    using InfluxData.Net.InfluxDb.Models;
    using Microsoft.AspNetCore.Mvc;
    
    namespace WebApplication1.Controllers
    {
     public class InfoController : Controller
     {
     //  InfluxDbClient
     private InfluxDbClient clientDb;
    
     public InfoController()
     {
      //  InfluxDb API  、  、  
      var infuxUrl = "http://localhost:8086/";
      var infuxUser = "admin";
      var infuxPwd = "admin";
    
      //  InfluxDbClient  
      clientDb = new InfluxDbClient(infuxUrl, infuxUser, infuxPwd, InfluxDbVersion.Latest);
     }
    
    
     /// <summary>
     ///  InfluxDB     
     /// </summary>
     public async void GetData()
     {
      //      ,    
      var queries = new[]
      {
      " SELECT * FROM Reading WHERE time> now() - 24h "
      };
      var dbName = "code-hub";
    
      //         
      var response = await clientDb.Client.QueryAsync(queries, dbName);
      //  Serie    (           )
      var series = response.ToList();
      //            ,     
      var list = series[0].Values;
      //           
      var info_model = list.FirstOrDefault();
     }
    
    
    
     /// <summary>
     ///  InfluxDB     
     /// </summary>
     public async void AddData()
     {
      //  InfluxData.Net.InfluxDb.Models.Point      
      var point_model = new Point()
      {
      Name = "Reading",//  
      Tags = new Dictionary<string, object>()
      {
       { "Id", 158}
      },
      Fields = new Dictionary<string, object>()
      {
       { "Val", "webInfo" }
      },
      Timestamp = DateTime.UtcNow
      };
      var dbName = "code-hub";
    
      //         ,           
      var response = await clientDb.Client.WriteAsync(point_model, dbName);
     }
     }
    }
    총결산
    1.InfluxDB 는 전문 적 인 타 이 밍 데이터 베이스 로 타 이 밍 라 이브 러 리 를 통 해 응용 중의 타 이 밍 데 이 터 를 더욱 효율 적 으로 처리 할 수 있 습 니 다.
    2.InfluxDB 라 이브 러 리 를 사용 할 때 이 라 이브 러 리 의 일부 특색 기능,예 를 들 어 데이터 저장 전략,연속 조회 등 을 알 아야 한다.
    3."InfluxData.Net"라 이브 러 리 를 통 해 빠 르 고 간편 하 게 ASP.NET Core 2 프로그램 에서 InfluxDB 에 대한 읽 기와 쓰기 작업 을 실현 할 수 있 습 니 다.
    자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기