Testing the impact of streams on write performance: write latency vs. throughput for the case with and without streams
Test stream result latency at large write throughput
Validate several major scenarios such as scalar functions, individual aggregation per sub-table, and multiple vgroup super-table aggregation, respectively
Roadmap
The next optimizations for the TDengine 3.0 streaming engine will be divided into the following areas.
INSERT INTO d1001 USING METERS TAGS ("Beijng.Chaoyang", 2) VALUES (now, 10.2, 219, 0.32);
The SQL statement above inserts records (now, 10.2, 219, 0.32) into table d1001. If table d1001 has not been created yet, the STable meters is used as the template to automatically create it, and the tag value "Beijing.Chaoyang", 2 is marked at the same time.
However, there are times when applications still need to fetch data with low latency, such as when implementing monitoring alarms and anomaly detection, in which case the streams need to actually reach the application, and TDengine provides data subscription capabilities to meet this need.
SELECT ts, pm25-DIFF(pm25), pm25 FROM weather.p1;
You can, of course, do the same thing if you are setting up a multivariate series as well. So for example, if you are looking at PM25, CO, NO2 and windspeed, you can do the following:
for eachline in infile:
totalLines += 1
''' if there is an NA in the line, skip the line '''
if 'NA' in eachline:
print('Skipping - '+eachline)else:
myfields = eachline.split(',')
insertstr = 'insert into weather.'+tablename+' using weather.pollution tags ('+myfields
[-1].strip()
insertstr += ') values ('
''' next 2 lines create the timestamp from the year/mon/day/hr fields in the files '''
insertstr += '"' + "-".join(myfields[1:4])
insertstr += ' '+ myfields[4] + ':00:00",'
insertstr += ",".join(myfields[5:-1])
insertstr += ')'
'''outfile.write(insertstr)''''''print(insertstr)'''af=conn.execute(insertstr)
totalRows += af
Each type of data collection point needs an established STable, so an IoT system often has multiple STables. For the power grid, we need to build a STable for smart meters, transformers, buses, switches, etc. For IoT, a device may have multiple data collection points (for example, a fan for wind-driven generator, some collection points capture parameters such as current and voltage, tdengine and some capture environmental parameters such as temperature, humidity and wind direction). In this case, multiple STables need to be established for corresponding types of devices. All collected physical metrics contained in one and the same STable must be collected at the same time (with a consistent timestamp).
The
Tdengine Database Team is proud to announce the release of TDengine Cloud, a fully managed time series database (TSDB) solution that delivers the industry-leading performance of TDengine 3.0 as a cloud service. This serverless platform can run on Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP) and is offered in free and pay-as-you-go editions.
SELECT ts, pm25-DIFF(pm25), co-DIFF(co), no2-DIFF(no2), windspeed-DIFF(windspeed), pm25,co,no2,windspeed FROM weather.p1;
Using the Python connector, you can get the results of any of the above queries into a Pandas dataframe.
TDengine is a popular open-source data platform purpose-built for time-series data. With over 19,000 stars on GitHub and hundreds of new running instances daily, TDengine is used in over 50 countries worldwide. The company has raised $69M in venture capital, including a $47M 2021 series B round from MatrixPartners China, Sequoia Capital China, GGV Capital, and Index Capital.
Enterprise-ready cloud solution, providing robust backup, multi-cloud replication, user privilege controls and behavior auditing, VPC peering, and IP whitelisting features. TDengine Cloud delivers the carrier-grade performance and stability that you need to support your business.
Simplified setup and management, dramatically reducing the tools needed to start, operate, and manage your time-series database at scale. As a managed service, TDengine Cloud saves you time by taking care of clustering, backup, and data retention on its own.
Easier data analytics and sharing, enabling you to gain insight from your data more conveniently than ever. You can quickly access data in TDengine Cloud with Python, Java, Go, Rust, and Node.js connectors; create dashboards and applications that subscribe to your topics and streams; and replicate data across your enterprise with edge-to-cloud and cloud-to-cloud synchronization.
Fast and easy data ingestion, supporting standard SQL with connectors for popular programming languages as well as an MQTT broker with which you can send data to
tdengine database without writing any custom code, in addition to schemaless insert protocols. With TDengine Cloud, you can choose the method for writing data into your time-series database that is most convenient for you and your business scenario.
Join the communityRegister at cloud.tdengine.com today for a free account and walk through a short tutorial to quickly understand the capabilities and
tdengine database advantages of using TDengine to unlock the power of your time-series data.