ASP.NET Core2 읽기/쓰기 InfluxDB 시퀀스 데이터베이스

15080 단어
우리의 많은 응용에서 일련의 시간을 바탕으로 하는 데이터가 처리되어야 하는 것을 만날 수 있다. 시간의 순서를 통해 이러한 데이터 포인트를 선으로 연결한 다음에 데이터 통계를 통해 다위도 보고서를 만들 수 있고 기계 학습을 통해 데이터의 예측 경고를 실현할 수 있다.한편, 시차 데이터베이스는 이런 시간 순서 데이터를 저장하고 관리하는 데 사용되는 것으로 시차 데이터베이스는 일반적으로 시차 데이터의 빠른 쓰기, 지속화, 다위도의 집합 조회 등 기본 기능을 지원한다.
 
InfluxDB 소개
InfluxDB는 시간 시퀀스 데이터를 기반으로 개발된 고성능 데이터 저장 플랫폼으로 시간 시퀀스 데이터에 대해 높은 흡수량의 촬영, 압축과 실시간 조회를 할 수 있다.Go 언어로 작성된 InfluxDB는 Java, JavaScript, 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/
 
InfluxDB 작업
InfluxDB를 어떻게 조작하는지 간단히 소개할 것이며, 이러한 조작을 통해 기본적으로 업무상의 수요를 만족시킬 수 있다.InfluxDB를 조작하는 데는 명령행 도구를 사용할 수도 있고, 소스 오픈 클라이언트 도구를 빌릴 수도 있다. 내가 사용하는 것은 'InfluxDBStudio' 라는 C#를 기반으로 작성된 소스 오픈 도구이다.일반적으로 사용되는 작업의 코드는 다음과 같습니다.
  1 #    
  2 show users
  3 
  4 #    
  5 create user "username" with password 'password'
  6 
  7 #         
  8 create user "username" with password 'password' with all privileges
  9 
 10 #    
 11 drop user "username"
 12 
 13 #     
 14 create database "db_name"
 15 
 16 #        
 17 show databases
 18 
 19 #     
 20 drop database "db_name"
 21 
 22 #     
 23 use db_name
 24 
 25 #           
 26 show measurements
 27 
 28 #   ,              ,  test   
 29 insert test,host=127.0.0.1,monitor_name=test count=1
 30 
 31 #   
 32 drop measurement "measurement_name"
 33 
 34 #    
 35 select * from test order by time desc
 36 
 37 #              (Retention Policies)
 38 show retention policies on "db_name"
 39 
 40 #          
 41 #rp_name:   
 42 #db_name:       ;
 43 #3w:  3 ,3          ,influxdb        ,  :h(  ),d( ),w(  )
 44 #replication 1:    ,   1    
 45 #default:       
 46 create retention policy "rp_name" on "db_name" duration 3w replication 1 default
 47 
 48 #        
 49 alter retention policy "rp_name" on "db_name" duration 30d default
 50 
 51 #        
 52 drop retention policy "rp_name"
 53 
 54 #          (Continous Queries)
 55 show continuous queries
 56 
 57 #        (Continous Queries)
 58 #cq_name:      
 59 #db_name:     
 60 #sum(count):    
 61 #table_name:    
 62 #new_table_name:        
 63 #30m:     30  
 64 create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
 65 
 66 #      
 67 drop continous query cp_name on db_name
 68 

 
이루어지다
상술한 소개와 조작을 통해 우리는 InfluxDB 데이터베이스에 대해 기본적으로 익숙해졌으니 다음에 ASP에서 함께 살펴보자.NET Core2 프로그램에서는 InfluxDB 데이터베이스를 읽고 쓰는 방법을 설명합니다.여기서 우리는'InfluxData.Net'이라는 제3자 라이브러리를 빌려 InfluxDB와 상호작용 통신을 한다.'InfluxData.Net'라이브러리를 바탕으로 우리는 데이터베이스의 읽기와 쓰기 작업을 간단하게 완성할 수 있다.ASP에서.NET Core2 프로젝트에서 Nuget 관리자를 통해 "Influx Data.Net"라이브러리를 참조한 후 구현 코드를 다음과 같이 입력합니다. 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using InfluxData.Net.Common.Enums; 6 using InfluxData.Net.InfluxDb; 7 using InfluxData.Net.InfluxDb.Models; 8 using Microsoft.AspNetCore.Mvc; 9 10 namespace WebApplication1.Controllers 11 { 12 public class InfoController : Controller 13 { 14 // InfluxDbClient 15 private InfluxDbClient clientDb; 16 17 public InfoController() 18 { 19 // InfluxDb API 、 、 20 var infuxUrl = "http://localhost:8086/"; 21 var infuxUser = "admin"; 22 var infuxPwd = "admin"; 23 24 // InfluxDbClient 25 clientDb = new InfluxDbClient(infuxUrl, infuxUser, infuxPwd, InfluxDbVersion.Latest); 26 } 27 28 29 /// 30 /// InfluxDB 31 /// 32 public async void GetData() 33 { 34 // , 35 var queries = new[] 36 { 37 " SELECT * FROM Reading WHERE time> now() - 24h " 38 }; 39 var dbName = "code-hub"; 40 41 // 42 var response = await clientDb.Client.QueryAsync(queries, dbName); 43 // Serie ( ) 44 var series = response.ToList(); 45 // , 46 var list = series[0].Values; 47 // 48 var info_model = list.FirstOrDefault(); 49 } 50 51 52 53 /// 54 /// InfluxDB 55 /// 56 public async void AddData() 57 { 58 // InfluxData.Net.InfluxDb.Models.Point 59 var point_model = new Point() 60 { 61 Name = "Reading",// 62 Tags = new Dictionary<string, object>() 63 { 64 { "Id", 158} 65 }, 66 Fields = new Dictionary<string, object>() 67 { 68 { "Val", "webInfo" } 69 }, 70 Timestamp = DateTime.UtcNow 71 }; 72 var dbName = "code-hub"; 73 74 // , 75 var response = await clientDb.Client.WriteAsync(point_model, dbName); 76 } 77 } 78 }
 
총결산
1. InfluxDB는 전문적인 시차 데이터베이스로 시차 라이브러리를 통해 응용 프로그램의 시차 데이터를 더욱 효율적으로 처리할 수 있습니다.
2. InfluxDB 라이브러리를 사용할 때 먼저 이 라이브러리의 일부 특색 기능, 예를 들어 데이터 저장 정책, 연속 조회 등을 알아야 한다.
3、"InfluxData.Net"라이브러리를 통해 ASP에 신속하고 간편하게 도움을 줄 수 있습니다.NET Core2 프로그램에서 InfluxDB에 대한 읽기/쓰기 작업을 수행합니다.
 
성명
본문은 작가의 오리지널입니다. 전재는 출처와 원문 주소를 비고해 주십시오. 감사합니다.만약 글이 당신에게 도움을 줄 수 있다면 추천이나 관심을 눌러 주십시오. 당신의 지지에 감사 드립니다!

좋은 웹페이지 즐겨찾기