時系列データベース
時系列データベース( Time Series Database、TSDB ) は、時系列データベースと呼ばれます。時系列データベースとは、主に時間タグが付いたデータを処理(時間の順序で変化する、つまり時系列化)するために使用されるデータのことを指し、時間タグ付きデータは時系列データとも呼ばれます。
DB-Engines Webサイトのランキングを通じて 、多くの時系列データベースを見ることができます
1. 時系列データの主なデータ属性
(1) 各データ ポイントには、インデックス付け、集計、およびサンプリングのためのタイムスタンプが含まれています。このデータは多次元であり、相関している場合もあります。
(2) 書き込み量を増やし、読み取り量を減らす。第 2 レベル、ミリ秒レベル、さらにはナノ秒レベルでの高頻度書き込みをサポートする必要がある。クエリは通常、多次元の集計クエリであり、クエリのレイテンシ要件は比較的高い
(3) データの集約ビュー (ダウンサンプリングまたは集約されたビュー、傾向線など) は、個々のデータ ポイントよりも多くの洞察を提供する可能性があります。たとえば、ネットワークの信頼性の低下やセンサーの読み取り値の異常を考慮して、特定の期間にわたる特定の平均がしきい値を超えたときに、個々のデータ ポイントに対してアラートを設定するのではなく、アラートを設定する場合があります。
(4) データを分析するには、通常、一定期間にわたってデータにアクセスする必要があります (例: 過去 1 週間のクリック率データを教えてください)
2. 時系列データベースの適用シナリオ
時系列データベースのアプリケーション シナリオは、モノのインターネットやインターネット APM などのシナリオで広く使用されています。
(1)公安: インターネット記録、通話記録、個人追跡、インターバルスクリーニング。
(2)電力業界:スマートメーター、送電網、発電設備の集中監視。
(3)インターネット: サーバー/アプリケーションの監視、ユーザーのアクセスログ、広告のクリックログ。
(4)モノのインターネット: エレベーター、ボイラー、機械、水道メーター、その他のネットワーク機器。
(5) 運輸業: リアルタイムの道路状況、交差点の流れの監視、検問所データ
(6) 金融業界:取引記録、アクセス記録、ATM、POS機の監視
TDエンジン
実際のところ、私が TDengine Taosi 時系列データベースを直接使用した理由はわかりません。社内の何人かの同僚が以前にそれを使用したことがあったとしか言えません。時系列データベースの勉強を始めたばかりだと思っていました。問題があれば誰かが一緒に話し合ってくれるだろうということで、TDengine を選びました。TDengine のパフォーマンスに関して、ブロガーはインターネット上に研究資料が非常に少ないことに気づき、多くのネチズンがそれについて不満を言いましたが、ブロガーはここでコメントしたり意見を表明したりすることはできません。結局のところ、それは無料です(ただし、ダウンロードは必要です)サーバーとクライアント) パッケージをインストールするとき、ダウンロードするには電子メール アドレスを入力する必要があります。これ、えー、えー、えー...)。
TDengine Taosi 公式 Web サイト: TDengine | SQL をサポートするオープンソースの高性能分散時系列データベース | Taosi Data
TDengine Taosi は、SQL をサポートするオープンソースの高性能分散時系列データベースです。
公式 Web サイトのドキュメント:製品紹介 | TDengine ドキュメント
もちろん、現在の更新は本当に早くて、4月中旬のブロガーのドキュメントインターフェースと、メーデー以降の公式サイトのドキュメントインターフェースは異なります(半月ごとに更新されているそうです)
1. インストール
1.Dockerのインストール
ドキュメント: はじめに | TDengine ドキュメント
Dockerがインストールされていることを確認してください
次のコマンドを実行します
docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
TDengine タイミング ライブラリを使用してサービスを Linux システムに公開し、taos ドライバーをマッピングし、ホスト名をマッピングする場合、ブロガーはここで最初に宣言します。遭遇するバグについては以下で詳しく説明します。
-v /usr/local/taos/driver/libtaos.so.2.1.1.0:/usr/lib/libtaos.so
次のように完了します
docker run -d \
--name application-name \
--hostname docker-hostname \
-v /usr/local/taos/driver/libtaos.so.2.4.0.5:/usr/lib/libtaos.so \
-v /usr/share/zoneinfo:/usr/share/zoneinfo \
-e TZ=Asia/Shanghai \
-p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp \
docker-image-name
コンテナが稼働していることを確認してください
docker ps
コンテナに入ってbashを実行する
docker exec -it <containrid> bash
タオスを開始する
インストール後、 systemctl
コマンドを使用して TDengine のサービスプロセスを開始してください。
systemctl start taosd
サービスが適切に動作しているかどうかを確認します。
systemctl status taosd
2. インストールパッケージ
ドキュメント: はじめに | TDengine ドキュメント
公式 Web サイトから tar.gz インストール パッケージをダウンロードします( TDengine-server-2.4.0.5-Linux-x64.tar などの Linux をインストールします)。
tar xvzf TDengine-enterprise-server-2.4.0.5-Linux-x64.tar.gz -C 安装目录
( 1 )インストール
cd opt/taos/TDengine-server-2.4.0.5
sudo ./install.sh
( 2 )走る
systemctl start taosd
systemctl status taosd 查看运行状态
3. アップグレード
よくある質問とフィードバック | TDengine ドキュメント | Taosi データ
バージョン 3.0 は以前のバージョンに基づいて完全にリファクタリングされており、設定ファイルとデータ ファイルには互換性がありません。アップグレードする前に必ず次のことを行ってください。
- 設定ファイルを削除するには、次のコマンドを実行します。
sudo rm -rf /etc/taos/taos.cfg
- ログファイルを削除するには、次のコマンドを実行します。
sudo rm -rf /var/log/taos/
- データが不要になったことを確認するには、データ ファイルを削除して実行します。
sudo rm -rf /var/lib/taos/
ノート:
事前にデータのエクスポートとバックアップをしっかり行ってください。!!
4. インストールディレクトリの説明
TDengine データベースが正常にインストールされると、メインのインストール ディレクトリは /usr/local/taos となり、ディレクトリの内容は次のようになります。
[root@xx TDengine-server-3.0.1.1]# cd /usr/local/taos
[root@xx taos]# ll
total 0
drwxr-xr-x. 2 root root 269 Sep 21 12:15 bin
drwxr-xr-x. 2 root root 46 Sep 21 12:15 cfg
lrwxrwxrwx. 1 root root 13 Sep 21 12:15 data -> /var/lib/taos
drwxr-xr-x. 2 root root 51 Sep 21 12:15 driver
drwxr-xr-x. 11 root root 124 Sep 21 12:15 examples
drwxr-xr-x. 2 root root 73 Sep 21 12:15 include
lrwxrwxrwx. 1 root root 13 Sep 21 12:15 log -> /var/log/taos
構成ファイル ディレクトリ、データベース ディレクトリ、ログ ディレクトリを自動的に生成します。
設定ファイルのデフォルト ディレクトリ: /etc/taos/taos.cfg、/usr/local/taos/cfg/taos.cfg へのソフト リンク、
データベースのデフォルト ディレクトリ: /var/lib/taos、/usr/local へのソフト リンク/taos/data;
デフォルトのログ ディレクトリ: /var/log/taos、/usr/local/taos/log へのソフト リンク;
/usr/local/taos/bin ディレクトリ内の実行可能ファイル、/usr へのソフト リンク / bin ディレクトリ;
/usr/local/taos/driver ディレクトリの下のダイナミック ライブラリ ファイルは /usr/lib ディレクトリにソフト リンクされます;
/usr/local/taos/include ディレクトリの下のヘッダ ファイルは以下にソフト リンクされます/usr/include ディレクトリ。
5. ファイルのアンインストールとアップデートの手順
インストール パッケージをアンインストールする場合、設定ファイル、データベース ファイル、ログ ファイル、つまり /etc/taos/taos.cfg 、 /var/lib/taos 、 /var/log/taos は保持されます。ユーザーが確認後に保持する必要がない場合は、手動で削除できますが、削除後はデータが完全に失われ、復元できなくなるので注意してください。
更新インストールの場合、デフォルトの設定ファイル ( /etc/taos/taos.cfg ) が存在する場合は、既存の設定ファイルが引き続き使用され、インストール パッケージに含まれる設定ファイルは taos.cfg.org に変更され、 /usr/ に保存されています local/taos/cfg/ ディレクトリは、構成パラメータを設定するための参考例として使用できます。構成ファイルがない場合は、インストール パッケージに付属の構成ファイルを使用します
6. アンインストール
TDengine の各種インストール パッケージのインストールとアンインストール - TDengine | Taosi Data
[root@ss TDengine-server-2.4.0.5]# rmtaos
TDengine is removed successfully!
2. クライアント
インストール パッケージをダウンロードします:すべてのダウンロード リンク - TDengine | Taosi Data
ブロガーによってダウンロードされたバージョン 2.4.0.5
ノート:
クライアントとサーバーのバージョン番号は正確に同じである必要があります。そうでない場合、クライアントの接続時に「接続を確立できません」というエラーが表示されます。
下記参照
よくある質問とフィードバック | TDengine ドキュメント | Taosi データ
4.「接続を確立できません」というエラーが発生した場合はどうすればよいですか?
クライアントで接続エラーが発生しました。以下の手順に従って確認してください。
- ネットワーク環境を確認してください
- クラウド サーバー: クラウド サーバーのセキュリティ グループが TCP/UDP ポート 6030/6041 にアクセスできるかどうかを確認します。
- ローカル仮想マシン: ネットワークに ping できるかどうかを確認し、
localhost
ホスト名として使用しないようにしてください。- 自社サーバー:NATネットワーク環境の場合、サーバーがクライアントにメッセージを返せるか必ずご確認ください。
クライアントとサーバーのバージョン番号が正確に同じであること、およびオープンソースのコミュニティ エディションとエンタープライズ エディションを混合できないことを確認してください。
サーバー上で を実行して、 taosd の
systemctl status taosd
実行ステータス を確認します。実行されていない場合は、taosdを起動しますクライアントが正しいサーバー FQDN (完全修飾ドメイン名 - サーバー上で Linux コマンド hostname -f を実行することで取得できます) を指定していることを確認します。FQDN 構成リファレンス: TDengine のFQDN について明確に説明している記事があります。
サーバーの FQDN に ping を実行します。応答がない場合は、ネットワーク、DNS 設定、またはクライアントが配置されているコンピューターのシステム ホスト ファイルを確認してください。TDengine クラスターがデプロイされている場合、クライアントはすべてのクラスター ノードの FQDN に ping できる必要があります。
ファイアウォール設定を確認し (Ubuntu の場合は ufw status が使用され、CentOS の場合は firewall-cmd --list-port が使用されます)、クラスター内のすべてのホストのポート 6030/6041 上の TCP/UDP プロトコルが相互に通信できることを確認します。 。
Linux での JDBC (ODBC、Python、Go、およびその他の同様のインターフェイス) 接続の場合は、 libtaos.soがディレクトリ/usr/local/taos/driverにあり、/usr/local/taos/driver がシステム ライブラリにあることを確認してください。関数検索パスLD_LIBRARY_PATH
Windows 上の JDBC、ODBC、Python、Go、およびその他の接続の場合は、 C:\TDengine\driver\taos.dllがシステム ライブラリ関数の検索ディレクトリにあることを確認してください( taos.dllをディレクトリC:に配置すること をお勧めします)。 \Windows\システム32 )
それでも接続のトラブルシューティングができない場合
Linux システムの場合は、コマンド ライン ツール nc を使用して、指定したポートの TCP および UDP 接続がスムーズであるかどうかを判断してください。 UDP ポート接続が機能しているかどうかを確認します。 サーバー側の TCP ポート接続が機能しているかどうかを確認し
nc -vuz {hostIP} {port}
ますnc -l {port}
。クライアント側の TCP ポート接続は機能しています。nc {hostIP} {port}
Windows システムの場合は、PowerShell コマンド Test-NetConnection -ComputerName {fqdn} -Port {port} を使用して、サービス セグメント ポートがアクセスされているかどうかを確認してください。
- taos プログラムの組み込みネットワーク接続検出機能を使用して、サーバーとクライアント間の指定されたポート接続がスムーズであるかどうかを検証することもできます (診断など)。
1. Windows は taos クライアントを使用します
cmd.exe で、C:\TDengine ディレクトリに切り替え、taos.exe を実行してデータベースに接続します。
他のホストのクライアントを通じて TDengine にアクセスするには、ホスト名を指定する必要があります: taos -h ip/hostname
次のように:
taos -h 192.168.22.16
或者
// myhostname 指Linux系统上的主机名
taos -h myhostname
taos 経由で接続する場合、ユーザー名とパスワードは指定されません。ユーザーが認証情報を指定しない場合、 TDengine はデフォルトで root になり、taosdata になります。
接続に成功しました
2.FQDNの設定
FQDN (完全修飾ドメイン名、完全修飾ドメイン名) は、インターネット上の特定のコンピューターまたはホストの完全なドメイン名です。FQDN は、ホスト名とドメイン名の 2 つの部分で構成されます。たとえば、メール サーバーの FQDN が mail.taosdata.com であるとします。ホスト名は mail で、ホストはドメイン名 taosdata.com 内にあります。
FQDN を IP に変換する役割を担うDNS (ドメイン ネーム システム) は、ほとんどのインターネット アプリケーションのアドレス指定方法です。
ドキュメント: TDengine の FQDN を明確にする記事 - TDengine | Taosi Data
Windowsシステム
Windows は当面クライアントの展開のみをサポートしているため、FQDN の解決を構成するだけで済みます。
C:\Windows\System32\drivers\etc
Win10 を例に挙げると、 hosts文件
10.211.55.14 node1
10.211.55.15 node2
10.211.55.16 node3
Linuxシステム
node1 ノードを例に挙げると、次の/etc/hostname
ように変更する必要があります。/etc/hosts
/etc/hostname
変更が完了したら、有効にするために再起動が必要です
改訂/etc/hosts
vi /etc/hostname
//将文件内容修改为node1
vi /etc/hosts
//添加一下三行
10.211.55.14 node1
10.211.55.15 node2
10.211.55.16 node3
成功のプロンプトは Windows 上の通常の pingy と同じですが、失敗のプロンプトは次のようになります。
//windows下
C:\Users\pc-01>ping node1
Ping 请求找不到主机 node1。请检查该名称,然后重试。
//Linux下
root@node2:~# ping node1
ping: unknown host node1
3. ポートを開く
TCP/UDP ポート 6030 ~ 6042 へのオープン アクセス
参照: Linux-CentOS オープンポート外部ネットワークアクセス許可
4. クライアントとサーバー間の時刻の不一致により、クライアントとサーバー間の接続ができないという問題もあります
タイムゾーン構成ファイルを変更する
#删除当前默认时区的配置文件,不建议直接删除(出于操作安全考虑),最好是使用mv命令重命名
rm -rf /etc/localtime
#建立软连接文件到配置文件区,替换掉之前删掉或备份的/etc/localtime 文件
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl #查看当前时区
#设置当前时区为上海常用:Asia/Hong_Kong
timedatectl set-timezone Asia/Shanghai
同期時間
#安装时间同步应用
yum install -y ntp
#同步上海授时中心时间
ntpdate ntp.api.bz
3、SQL文
ドキュメント: TAOS SQL | TDengine ドキュメント
1. データベース、スーパーテーブル、テーブル
2.テーブル名の正当性
TDengine のテーブル (列) の命名規則は次のとおりです: 文字、数字、アンダースコアのみで構成でき、最初に数字を使用することはできません、長さは 192 バイトを超えることはできません、大文字と小文字は区別されません。このテーブル名には、データベース名の接頭辞と区切り文字は含まれません。
3.テーブル管理
テーブルの最初のフィールドは TIMESTAMP である必要があり、システムはそれを主キーとして自動的に設定します。
4. Taos シェルのバイナリおよび nchar フィールドの最大表示幅
シェルでコマンド set max_binary_display_width nn を使用して、このオプションを動的に変更します。
set max_binary_display_width 50;
4 番目に、Java に接続します
ドキュメント: TDengine Java コネクタ | TDengine ドキュメント
taos-jdbcdriver
これは TDengine の公式 Java 言語コネクタであり、Java 開発者はこれを介して TDengine データベースにアクセスするためのアプリケーション ソフトウェアを開発できます。taos-jdbcdriver
JDBC ドライバーの標準インターフェイスを実装し、2 種類のコネクタを提供します。1 つは、TDengine クライアント ドライバー (taosc) を通じて TDengine インスタンスにネイティブに接続することです。
taos-jdbcdriverの jar パッケージ Maven ウェアハウス アドレス
https://mvnrepository.com/artifact/com.taosdata.jdbc/taos-jdbcdriver
Maven プロジェクトで、次の依存関係を pom.xml に追加します。
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.**</version>
</dependency>
public Connection getConn() throws Exception{
Class.forName("com.taosdata.jdbc.TSDBDriver");
String jdbcUrl = "jdbc:TAOS://taosdemo.com:6030/test?user=root&password=taosdata";
Properties connProps = new Properties();
connProps.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
connProps.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
connProps.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
connProps.setProperty("debugFlag", "135");
connProps.setProperty("maxSQLLength", "1048576");
Connection conn = DriverManager.getConnection(jdbcUrl, connProps);
return conn;
}
public Connection getRestConn() throws Exception{
Class.forName("com.taosdata.jdbc.rs.RestfulDriver");
String jdbcUrl = "jdbc:TAOS-RS://taosdemo.com:6041/test?user=root&password=taosdata";
Properties connProps = new Properties();
connProps.setProperty(TSDBDriver.PROPERTY_KEY_BATCH_LOAD, "true");
Connection conn = DriverManager.getConnection(jdbcUrl, connProps);
return conn;
}
接続プールと併用する
使用例は次のとおりです。
public static void main(String[] args) throws SQLException {
HikariConfig config = new HikariConfig();
// jdbc properties
config.setJdbcUrl("jdbc:TAOS://127.0.0.1:6030/log");
config.setUsername("root");
config.setPassword("taosdata");
// connection pool configurations
config.setMinimumIdle(10); //minimum number of idle connection
config.setMaximumPoolSize(10); //maximum number of connection in the pool
config.setConnectionTimeout(30000); //maximum wait milliseconds for get connection from pool
config.setMaxLifetime(0); // maximum life time for each connection
config.setIdleTimeout(0); // max idle time for recycle idle connection
config.setConnectionTestQuery("select server_status()"); //validation query
HikariDataSource ds = new HikariDataSource(config); //create datasource
Connection connection = ds.getConnection(); // get connection
Statement statement = connection.createStatement(); // get statement
//query or insert
// ...
connection.close(); // put back to conneciton pool
}
使用例は次のとおりです。
public static void main(String[] args) throws Exception {
DruidDataSource dataSource = new DruidDataSource();
// jdbc properties
dataSource.setDriverClassName("com.taosdata.jdbc.TSDBDriver");
dataSource.setUrl(url);
dataSource.setUsername("root");
dataSource.setPassword("taosdata");
// pool configurations
dataSource.setInitialSize(10);
dataSource.setMinIdle(10);
dataSource.setMaxActive(10);
dataSource.setMaxWait(30000);
dataSource.setValidationQuery("select server_status()");
Connection connection = dataSource.getConnection(); // get connection
Statement statement = connection.createStatement(); // get statement
//query or insert
// ...
connection.close(); // put back to conneciton pool
}
5.データのインポートとエクスポート
1. エクスポート
データ エクスポート | TDengine ドキュメント | Taosi データ
select * from <tb_name> >>データ.csv;
インストールパスに保存します
select * エネルギー_ab.レポート_五分_レポート_レコード >> データ_ab.csv から;
2.インポート
データのインポート | TDengine ドキュメント | Taosi データ
taos> insert into d1001 file '~/data.csv';
Query OK, 9 row(s) affected (0.004763s)
6、容量、バックアップ
1. 容量
キャパシティ プランニング | TDengine ドキュメント | Taosi データ
各データベースは、デフォルトで CPU コアの数と同じ固定数の vgroup を作成でき、maxVgroupsPerDb を通じて構成できます。vgroup 内の各コピーは vnode になり、各 vnode は固定サイズのメモリを占有します (サイズはキャッシュに関連するデータベース構成パラメータのブロックと同じです)、各テーブルはタグの全長に関連するメモリを占有します、さらに、システムには一定の固定メモリ オーバーヘッドがあります。したがって、各 DB に必要なシステム メモリは次の式で計算できます。
データベース メモリ サイズ = maxVgroupsPerDb * レプリカ * (ブロック * キャッシュ + 10MB) + numOfTables * (tagSizePerTable + 0.5KB)
例: maxVgroupPerDB がデフォルト値 64、キャッシュのデフォルト サイズ 16M、ブロックのデフォルト値 6、DB 内に 100,000 のテーブル、単一コピー、タグの合計長が 256 バイトであると仮定します。合計メモリ要件は、64 * 1 * (16 * 6 + 10) + 100000 * (0.25 + 0.5) / 1000 = 6792M となります。
taosd メモリの合計 = vnode メモリ + mnode メモリ + クエリ メモリ
( 1 ) 「vnode メモリ」とは、現在の taosd ノードに割り当てられたクラスタ内のすべてのデータベース ストレージによって占有されるメモリ リソースを指します。上記の「データベースのメモリサイズ」の計算式に従って各 DB のメモリ使用量を推定し、それらを合計し、クラスタ内の TDengine ノードの総数に応じて平均することができます (複数のコピーを設定する場合は、対応するコピー倍数を乗算します)。
( 2 ) 「mnode メモリ」とは、クラスター内の管理ノードによって占有されるリソースを指します。taosd ノード上に mnode 管理ノードが分散されている場合、メモリ消費量は「0.2KB * クラスター内のデータ テーブルの総数」だけ増やす必要があります。
( 3 ) 「クエリ メモリ」とは、クエリ リクエストを処理するときにサーバーが占有する必要があるメモリを指します。1 つのクエリ ステートメントは、少なくとも「0.2KB * クエリに含まれるデータ テーブルの総数」のメモリを占有します。
2. バックアップ
taosdump は、実行中の TDengine クラスターからのデータのバックアップと、バックアップされたデータの同じまたは別の実行中の TDengine クラスターへの復元をサポートするユーティリティ アプリケーションです。
taosdump は、バックアップする論理データ単位としてデータベース、スーパー テーブル、または通常のテーブルを使用でき、指定された期間内のデータベース、スーパー テーブル、および通常のテーブルのデータ レコードをバックアップすることもできます。使用時にデータをバックアップするディレクトリ パスを指定できますが、場所を指定しない場合、taosdump はデフォルトで現在のディレクトリにデータをバックアップします。
TDengine のバックアップとリカバリ_DBA Dadong のブログ-CSDN ブログ
taosdump | TDengine ドキュメント | Taos データ
すべてのデータベースをバックアップします: -A または --all-databases パラメータを指定します
指定した複数のデータベースをバックアップします。 -D db1,db2,... パラメータを使用します。
指定されたデータベース内のいくつかのスーパー テーブルまたは通常のテーブルをバックアップします。 dbname stbname1 stbname2 tbname1 tbname2 ... パラメータを使用します。この入力シーケンスの最初のパラメータはデータベース名であり、サポートされるデータベースは 1 つだけであり、2 番目以降のパラメータであることに注意してください。スペースで区切られた、データベース内のスーパー テーブルまたは通常のテーブルの名前です。
使用法: taosdump [OPTION...] dbname [tbname ...]
または: taosdump [OPTION...] --databases db1,db2,...
または: taosdump [OPTION...] --all-databases
または: taosdump [OPTION...] -i inpath
または: taosdump [OPTION...] -o outpath
-h, --host=HOST データのダンプ元のサーバー ホスト。デフォルトはローカルホストです
。
-p、--password サーバーに接続するためのユーザーのパスワード。デフォルトはタオスデータです
。
-P, --port=PORT 接続するポート
-u, --user=USER サーバーへの接続に使用するユーザー名。デフォルトは
rootです。
-c, --config-dir=CONFIG_DIR ディレクトリを構成します。デフォルトは /etc/taos
-i, --inpath=INPATH 入力ファイルのパスです。
-o, --outpath=OUTPATH 出力ファイルのパス。
-r, --resultFile=RESULTFILE DumpOut/In 結果ファイルのパスと名前。
-a, --allow-sys システム データベースのダンプを許可します。
-A, --all-databases すべてのデータベースをダンプします。
-D, --databases=DATABASES 入力されたデータベースをダンプします。
データベース名を区切るにはカンマを使用します。
-N, --without-property プロパティを指定せずにデータベースをダンプします。
-s、--schemaonly テーブルのスキーマのみをダンプします。
-y、--answer-yes プロンプトに対して「yes」と入力します。データファイルのチェックはスキップされます
。-d, --avro-codec=snappy null、deflate、snappy、 lzma
の中から avro コーデックを選択します。-S, --start-time=START_TIME ダンプの開始時刻。エポック形式またはISO8601/RFC3339 形式のいずれかを使用できます。ISO8601形式の例: 2017-10-01T00:00:00.000+0800 または2017-10-0100:00:00:000+0800 または '2017-10-01 00:00:00.000+0800'
-E, --end-time=END_TIME ダンプの終了時刻。エポック形式または ISO8601/RFC3339
形式のいずれかを使用できます。ISO8601 形式の例:
2017-10-01T00:00:00.000+0800 または
2017-10-0100:00:00.000+0800 または '2017-10-01
00:00:00.000+0800'
-B, --data-batch =DATA_BATCH バックアップ
/リストア時のクエリ/挿入ステートメントごとのデータ数。デフォルト値は 16384 です。バックアップ時に「実際のダンプ .. バッチ .. エラー」が表示される場合
、またはリストア
時に「WAL サイズが制限を超えています」エラーが表示される場合は
、値をより小さい値に調整して
試してください。有効な値は、
行の長さとテーブル スキーマのタイプに関連します。
-I、--inspect avro ファイルの内容を検査し、画面に印刷します。
-L, --loose-mode テーブル名と列名に
文字と数字のみを使用する場合は、loose モードを使用します。デフォルトは「いいえ」です。
-n、--no-escape エスケープ文字「`」はありません。デフォルトではそれを使用します。
-T, --thread-num=THREAD_NUM ファイル内のダンプのスレッドの数。デフォルトは
5です
。 -g, --debug デバッグ情報を出力します。
-?, --help このヘルプ リストを表示します
--usage 短い使用法メッセージを表示します
-V, --version プログラムのバージョンを表示します
長いオプションに対する必須またはオプションの引数は、対応する短いオプションでも必須またはオプションです
。
バグを <[email protected]> に報告してください。
taosTools インストール パスの下に dumpdata フォルダーを作成します。
バックアップ、コマンドの実行
/usr/localhost/taos/taosTools-1.4.3/bin/./taosdump -A
以下のファイルを参照してください
バックアップを復元
/usr/localhost/taos/taosTools-1.4.3/bin/./taosdump -i /usr/localhost/taos/taosTools-1.4.3/dumpdata/
セブン、ピットを踏む
よくある質問とフィードバック
ドキュメント - Taosi データ | TDengine
taos データベースの一般的な問題の概要が github にあります
https://github.com/taosdata/tdengine/issues?q=
マスターの TDengine/src/connector/jdbc · taosdata/TDengine · GitHub
JDBC コネクタによって報告される可能性のあるエラー コードには、JDBC ドライバー自体によって報告されるエラー (エラー コードは 0x2301 ~ 0x2350 の間)、JNI メソッドによって報告されるエラー (エラー コードは 0x2351 ~ 0x2400 の間)、およびエラーの 3 種類があります。 TDengine の他の機能モジュールによって報告されます。特定のエラー コードについては、以下を参照してください。
https://github.com/taosdata/TDengine/blob/develop/src/inc/taoserror.h
1.systemctl の taosd の起動に失敗しました
Taosi 2.4.X を 3.0.X にアップグレードし、Taosi サービスを開始してエラーを報告します
[root@XX TDengine-server-3.0.1.1]# systemctl status taosd
● taosd.service - TDengine server service
Loaded: loaded (/etc/systemd/system/taosd.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Wed 2022-09-21 12:16:31 CST; 45min ago
Process: 105841 ExecStart=/usr/bin/taosd (code=exited, status=255)
Process: 105834 ExecStartPre=/usr/local/taos/bin/startPre.sh (code=exited, status=0/SUCCESS)
Main PID: 105841 (code=exited, status=255)
Sep 21 12:16:30 ht-energy systemd[1]: Unit taosd.service entered failed state.
Sep 21 12:16:30 ht-energy systemd[1]: taosd.service failed.
Sep 21 12:16:31 ht-energy systemd[1]: taosd.service holdoff time over, scheduling restart.
Sep 21 12:16:31 ht-energy systemd[1]: Stopped TDengine server service.
Sep 21 12:16:31 ht-energy systemd[1]: start request repeated too quickly for taosd.service
Sep 21 12:16:31 ht-energy systemd[1]: Failed to start TDengine server service.
Sep 21 12:16:31 ht-energy systemd[1]: Unit taosd.service entered failed state.
Sep 21 12:16:31 ht-energy systemd[1]: taosd.service failed.
/usr/bin/taosd を実行すると、次のような特定のエラーが直接発生します。
[root@ht-energy TDengine-server-3.0.1.1]# /usr/bin/taosd
read /etc/localtime error, reason:Invalid argumentThere is not /etc/timezone.
09/21 13:02:28.688021 00108335 UTL fail to load apoll url
09/21 13:02:28.688104 00108335 UTL load from cfg file /etc/taos/taos.cfg success
09/21 13:02:28.688112 00108335 UTL failed to load env file: .env
09/21 13:02:28.688123 00108335 UTL load from env variables cfg success
09/21 13:02:28.688620 00108335 UTL fail to load apoll url
09/21 13:02:28.688685 00108335 UTL load from cfg file /etc/taos/taos.cfg success
09/21 13:02:28.688696 00108335 UTL failed to load env file: .env
09/21 13:02:28.688703 00108335 UTL load from env variables cfg success
09/21 13:02:28.688789 00108335 UTL global config
09/21 13:02:28.688794 00108335 UTL =================================================================
09/21 13:02:28.688797 00108335 UTL cfg_file firstEp ht-energy:6030
09/21 13:02:28.688802 00108335 UTL default secondEp ht-energy:6030
09/21 13:02:28.688805 00108335 UTL default fqdn ht-energy
09/21 13:02:28.688809 00108335 UTL default serverPort 6030
09/21 13:02:28.688812 00108335 UTL default tempDir /tmp
09/21 13:02:28.688816 00108335 UTL default minimalTmpDirGB 1.00
09/21 13:02:28.688831 00108335 UTL default shellActivityTimer 3
09/21 13:02:28.688834 00108335 UTL default compressMsgSize -1
09/21 13:02:28.688837 00108335 UTL default compressColData -1
09/21 13:02:28.688840 00108335 UTL default queryPolicy 1
09/21 13:02:28.688844 00108335 UTL default querySmaOptimize 0
09/21 13:02:28.688847 00108335 UTL default queryPlannerTrace 0
09/21 13:02:28.688850 00108335 UTL default smlChildTableName
09/21 13:02:28.688854 00108335 UTL default smlTagName _tag_null
09/21 13:02:28.688857 00108335 UTL default smlDataFormat 1
09/21 13:02:28.688861 00108335 UTL default numOfTaskQueueThreads 4
09/21 13:02:28.688864 00108335 UTL default dataDir /var/lib/taos
09/21 13:02:28.688867 00108335 UTL default minimalDataDirGB 2.00
09/21 13:02:28.688871 00108335 UTL default supportVnodes 16
09/21 13:02:28.688874 00108335 UTL default maxShellConns 50000
09/21 13:02:28.688892 00108335 UTL default statusInterval 1
09/21 13:02:28.688897 00108335 UTL default minSlidingTime 10
09/21 13:02:28.688901 00108335 UTL default minIntervalTime 1
09/21 13:02:28.688904 00108335 UTL default maxNumOfDistinctRes 10000000
09/21 13:02:28.688908 00108335 UTL default countAlwaysReturnValue 1
09/21 13:02:28.688911 00108335 UTL default queryBufferSize -1
09/21 13:02:28.688914 00108335 UTL default printAuth 0
09/21 13:02:28.688918 00108335 UTL default multiProcess 0
09/21 13:02:28.688921 00108335 UTL default mnodeShmSize 20972544
09/21 13:02:28.688924 00108335 UTL default vnodeShmSize 104858624
09/21 13:02:28.688928 00108335 UTL default qnodeShmSize 41944064
09/21 13:02:28.688931 00108335 UTL default snodeShmSize 41944064
09/21 13:02:28.688934 00108335 UTL default bnodeShmSize 41944064
09/21 13:02:28.688937 00108335 UTL default numOfShmThreads 1
09/21 13:02:28.688941 00108335 UTL default numOfRpcThreads 4
09/21 13:02:28.688944 00108335 UTL default numOfCommitThreads 4
09/21 13:02:28.688947 00108335 UTL default numOfMnodeReadThreads 1
09/21 13:02:28.688950 00108335 UTL default numOfVnodeQueryThreads 16
09/21 13:02:28.688954 00108335 UTL default numOfVnodeStreamThreads 4
09/21 13:02:28.688957 00108335 UTL default numOfVnodeFetchThreads 4
09/21 13:02:28.688960 00108335 UTL default numOfVnodeWriteThreads 8
09/21 13:02:28.688964 00108335 UTL default numOfVnodeSyncThreads 16
09/21 13:02:28.688967 00108335 UTL default numOfVnodeRsmaThreads 8
09/21 13:02:28.688970 00108335 UTL default numOfQnodeQueryThreads 16
09/21 13:02:28.688973 00108335 UTL default numOfSnodeSharedThreads 2
09/21 13:02:28.688976 00108335 UTL default numOfSnodeUniqueThreads 2
09/21 13:02:28.688980 00108335 UTL default rpcQueueMemoryAllowed 3353018777
09/21 13:02:28.688985 00108335 UTL default monitor 1
09/21 13:02:28.688988 00108335 UTL default monitorInterval 30
09/21 13:02:28.688992 00108335 UTL default monitorFqdn
09/21 13:02:28.688995 00108335 UTL default monitorPort 6043
09/21 13:02:28.688998 00108335 UTL default monitorMaxLogs 100
09/21 13:02:28.689001 00108335 UTL default monitorComp 0
09/21 13:02:28.689005 00108335 UTL default telemetryReporting 1
09/21 13:02:28.689008 00108335 UTL default telemetryInterval 43200
09/21 13:02:28.689011 00108335 UTL default telemetryServer telemetry.taosdata.com
09/21 13:02:28.689015 00108335 UTL default telemetryPort 80
09/21 13:02:28.689018 00108335 UTL default transPullupInterval 2
09/21 13:02:28.689021 00108335 UTL default mqRebalanceInterval 2
09/21 13:02:28.689025 00108335 UTL default ttlUnit 86400
09/21 13:02:28.689028 00108335 UTL default ttlPushInterval 86400
09/21 13:02:28.689031 00108335 UTL default uptimeInterval 300
09/21 13:02:28.689034 00108335 UTL default udf 1
09/21 13:02:28.689038 00108335 UTL default configDir /etc/taos
09/21 13:02:28.689041 00108335 UTL default scriptDir /etc/taos
09/21 13:02:28.689044 00108335 UTL default logDir /var/log/taos
09/21 13:02:28.689048 00108335 UTL default minimalLogDirGB 1.00
09/21 13:02:28.689051 00108335 UTL default numOfLogLines 10000000
09/21 13:02:28.689055 00108335 UTL default asyncLog 1
09/21 13:02:28.689058 00108335 UTL default logKeepDays 0
09/21 13:02:28.689061 00108335 UTL default debugFlag 0
09/21 13:02:28.689065 00108335 UTL default simDebugFlag 143
09/21 13:02:28.689068 00108335 UTL default tmrDebugFlag 131
09/21 13:02:28.689071 00108335 UTL default uDebugFlag 131
09/21 13:02:28.689075 00108335 UTL default rpcDebugFlag 131
09/21 13:02:28.689078 00108335 UTL default jniDebugFlag 131
09/21 13:02:28.689081 00108335 UTL default qDebugFlag 131
09/21 13:02:28.689084 00108335 UTL default cDebugFlag 131
09/21 13:02:28.689087 00108335 UTL default dDebugFlag 135
09/21 13:02:28.689090 00108335 UTL default vDebugFlag 135
09/21 13:02:28.689113 00108335 UTL default mDebugFlag 135
09/21 13:02:28.689117 00108335 UTL default wDebugFlag 135
09/21 13:02:28.689120 00108335 UTL default sDebugFlag 135
09/21 13:02:28.689123 00108335 UTL default tsdbDebugFlag 131
09/21 13:02:28.689126 00108335 UTL default tqDebugFlag 135
09/21 13:02:28.689129 00108335 UTL default fsDebugFlag 135
09/21 13:02:28.689132 00108335 UTL default udfDebugFlag 135
09/21 13:02:28.689135 00108335 UTL default smaDebugFlag 131
09/21 13:02:28.689138 00108335 UTL default idxDebugFlag 135
09/21 13:02:28.689141 00108335 UTL default tdbDebugFlag 131
09/21 13:02:28.689144 00108335 UTL default metaDebugFlag 135
09/21 13:02:28.689147 00108335 UTL default timezone
09/21 13:02:28.689150 00108335 UTL default locale en_US.UTF-8
09/21 13:02:28.689154 00108335 UTL default charset UTF-8
09/21 13:02:28.689157 00108335 UTL default enableCoreFile 1
09/21 13:02:28.689160 00108335 UTL default numOfCores 8.00
09/21 13:02:28.689164 00108335 UTL default openMax 1024
09/21 13:02:28.689167 00108335 UTL default streamMax 16
09/21 13:02:28.689170 00108335 UTL default pageSizeKB 4
09/21 13:02:28.689173 00108335 UTL default totalMemoryKB 32744324
09/21 13:02:28.689179 00108335 UTL default os sysname Linux
09/21 13:02:28.689183 00108335 UTL default os nodename hostname
09/21 13:02:28.689186 00108335 UTL default os release 3.10.0-1160.el7.x86_64
09/21 13:02:28.689189 00108335 UTL default os version #1 SMP Mon Oct 19 16:18:59 UTC 2020
09/21 13:02:28.689192 00108335 UTL default os machine x86_64
09/21 13:02:28.689196 00108335 UTL default version 3.0.1.1
09/21 13:02:28.689199 00108335 UTL default compatible_version 3.0.0.0
09/21 13:02:28.689202 00108335 UTL default gitinfo e6bb4c1aead0e3f156b13d4536fd9966373c194b
09/21 13:02:28.689205 00108335 UTL default buildinfo Built at 2022-09-15 21:48
09/21 13:02:28.689208 00108335 UTL =================================================================
09/21 13:02:28.691051 00108335 DND start to init dnode env
09/21 13:02:28.691073 00108335 DND ERROR The default data directory /var/lib/taos contains old data of tdengine 2.x, please clear it before running!
09/21 13:02:28.691251 00108335 DND ERROR failed to init dnode since Config not found
データが不要になったこと(またはエクスポートされてバックアップされたこと)を確認します。
データファイルを削除するには、次のコマンドを実行します。 sudo rm -rf /var/lib/taos/
ノート:
事前にデータのエクスポートとバックアップをしっかり行ってください。!!
2.タオスドライバー
java.lang.NoClassDefFoundError: Could not initialize class com.taosdata.jdbc.TSDBJNIConnector
3、java.lang.UnsatisfiedLinkError: java.library.path に taos がありません
java.lang.UnsatisfiedLinkError: no taos in java.library.path
https://github.com/taosdata/TDengine/issues/8235
4、java.sql.SQLException: JNI エラー(2354): Ref がありません
本質は、 JNI接続がNULLであることです
public static final int ERROR_JNI_CONNECTION_NULL = 0x2354; // JNI connection is NULL
12:47:02.779 [threadPoolTaskExecutor-11] INFO c.e.c.taos.TaosUtils - [instance,89] - 驱动 = com.taosdata.jdbc.TSDBDriver url = jdbc:TAOS://zm-dev:6030/tent_test_1?timezone=UTC-8&charset=UTF-8&locale=en_US.UTF-8
Taos get connection starting...
java.sql.SQLException: JNI ERROR (2354): Ref is not there
at com.taosdata.jdbc.TSDBError.createSQLException(TSDBError.java:75)
at com.taosdata.jdbc.TSDBJNIConnector.connect(TSDBJNIConnector.java:80)
at com.taosdata.jdbc.TSDBConnection.connect(TSDBConnection.java:35)
at com.taosdata.jdbc.TSDBConnection.<init>(TSDBConnection.java:21)
at com.taosdata.jdbc.TSDBDriver.connect(TSDBDriver.java:133)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.energy.common.taos.TaosUtils.instance(TaosUtils.java:99)
at com.energy.common.taos.TaosUtils.insertIntoBatchResult(TaosUtils.java:186)
at com.energy.jobTask.fiveMinutesTask.FiveMinutesTask.job(FiveMinutesTask.java:211)
at com.energy.startUp.InvokeJobTaskMethodsByPojo.doTask(InvokeJobTaskMethodsByPojo.java:82)
at com.energy.startUp.EnergyTaskStartUp$1$1.run(EnergyTaskStartUp.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
java.lang.NullPointerException
at com.energy.common.taos.TaosUtils.insertIntoBatchResult(TaosUtils.java:189)
at com.energy.jobTask.fiveMinutesTask.FiveMinutesTask.job(FiveMinutesTask.java:211)
at com.energy.startUp.InvokeJobTaskMethodsByPojo.doTask(InvokeJobTaskMethodsByPojo.java:82)
at com.energy.startUp.EnergyTaskStartUp$1$1.run(EnergyTaskStartUp.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
実際、ブロガーの問題も同じです。つまり、libtaos.so が見つからないということです。
Linux では、次のソフト リンク ln -s /usr/local/taos/driver/libtaos.so.xxxx /usr/lib/libtaos.so を作成する必要があります。
cd /usr/lib
ln -s libtaos.so .1 libtaos.so.3.0.1.1
1.ブロガーは、バージョン 2.4.0.14 の taos インストール ディレクトリ /xx/taos/TDengine-server-2.4.0.14/driver/ にある libtaos.so.2.4.0.14 の名前を libtaos.so に変更し、サービス jar にコピーしました。次のように、 パッケージと同じディレクトリ
2. 次のように Dockerfile をビルドします。
/usr/lib が Java PATH にありません。テストのために libtaos.so を /usr/bin ディレクトリに置きます
メインコード: libtaos.so /usr/lib を追加します。
FROM java:8
MAINTAINER zm
EXPOSE 8104
ADD energy-task.jar energy-task.jar
ADD libtaos.so /usr/lib
# Dockerfile
RUN echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["java","-jar","energy-task.jar"]
3. ブロガーがプロジェクト jar パッケージを実行するときは、ホスト名をマップする必要があります
-v /etc/hosts:/etc/hosts -v /etc/hostname:/etc/hostname
次のように完了します。
#!/bin/sh
cd /data1/docker/server/energy/energy-task
docker rm -f energy-task
docker rmi energy-task:latest
# 根据Dockerfile文件 构建镜像;"."代表当前目录,-t参数设置标签;使用当前目录的Dockerfile文件创建镜像并设置标签
docker build -t energy-task .
docker run -d -p 8104:8081 -e "SPRING_PROFILES_ACTIVE=test"
-v /etc/localtime:/etc/localtime -v /data1/logs/energy-task:/logs
-v /data1/files/energy-task:/files
-v /etc/hosts:/etc/hosts -v /etc/hostname:/etc/hostname
--restart=always --privileged=true --name energy-task energy-task:latest