問題タブ [clickhouse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - ClickHouse で時間バケットごとにグループ化し、不足しているデータを null/0 で埋める方法
与えられた時間範囲があるとします。説明のために、2018 年全体のような単純なものを考えてみましょう。結果が 4 行になるように、各四半期の合計集計として ClickHouse からデータをクエリしたいのです。
問題は、2 つの四半期のデータしかないため、 を使用するGROUP BY quarter
と 2 行しか返されないことです。
1514761200
– 2018-01-01
1546210800
–2018-12-31
これは以下を返します:
そして、私は必要です:
これは単純化された例ですが、実際の使用例では、集計は次のようになります。四半期の代わりに 5 分と GROUP BY には、次のような属性が少なくとも 1 つあるGROUP BY attribute1, time
ため、望ましい結果は次のとおりです。
与えられた間隔全体をどうにかして埋める方法はありますか? InfluxDB にはfill
グループまたは TimescaleDb のtime_bucket()
関数の引数があるようgenerate_series()
に、ClickHouse のドキュメントと github の問題を検索しようとしましたが、これはまだ実装されていないようなので、問題はおそらく回避策があるかどうかです。
database - ClickHouse 分散テーブルのフィルターが失敗した場所での個別の選択
分散テーブルでクエリをテストしているときに問題が発生しました。
SQL は次のようになります。
「on_time.ontime_all」は、OriginCityName、OriginStateName などの列を持つ分散テーブルです。そしてエラー:
ただし、SQL に対して次のいずれかを実行すると、エラーは消えます。
- 個別に削除
- where句を削除する
- where を prewhere に置き換えます
- where句の「OriginStateName」列を選択部分にも追加します
- 選択部分をに変更
select distinct *
この種の SQL は私のアプリケーションにとって重要です。それはバグですか、それとも ClickHouse の制限ですか? どうもありがとうございました。
clickhouse - サーバー localhost:9000、::1 からの予期しないパケット
https://github.com/Altinity/clickhouse-rpm-installの指示に従ってクリックハウスをインストールしました。
/etc/clickhouse-server/config.xml で :: も有効にしました。
以下のようにうまく起動しました。
sudo /etc/init.d/clickhouse-server restart clickhouse-server サービスを開始します: /etc/clickhouse-server/config.xml 内のデータ ディレクトリへのパス: /var/lib/clickhouse/ DONE
しかし、クライアントを起動すると、次のように失敗します。
sudo clickhouse-client ClickHouse クライアント バージョン 1.1.54383。localhost:9000 に接続しています。コード: 102. DB::NetException: サーバーからの予期しないパケット localhost:9000、::1 (予期される Hello または例外、不明なパケットを取得)
clickhouse - マテリアライズドビューの選択を変更するクリックハウス
私は次の設定をしています:
新しい列を追加したい、例。テーブルip
へ。my request_income
ドキュメントによると、そのためには次の手順に従う必要があります。
ビューをデタッチして、Kafka からのメッセージの受信を停止します。
DETACH TABLE request_income;
ALTER
Kafka エンジンはクエリをサポートしていないため、Kafka からデータをストリーミングするテーブルをドロップします。DROP TABLE request_income_buffer
新しいフィールドを使用して、Kafka からデータをストリーミングするテーブルを再作成します。
CREATE TABLE IF NOT EXISTS request_income_buffer (timestamp UInt64, timestamp_micro Float32, traceId Int64, host String, ip String, type String, service String, message String, caller String, context String ) ENGINE = Kafka('kafka:9092', 'request_income' 、「グループ」、「JSONEachRow」);
この投稿によると、切り離されたマテリアライズドビューの.innerテーブルを更新します
ALTER TABLE `.inner.request_income` ADD COLUMN ip String after host;
上記の更新ビューの選択クエリからの投稿によると
- ビューを添付
ATTACH TABLE request_income
質問は、ビューの選択クエリを更新する方法ですか?