問題タブ [vertica]
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 - 最新の行を取得する SQL クエリ - Vertica DB 用に最適化
ここに何百万ものエントリがあるテーブルがあります。テーブルにはイベントが格納され、各イベントにはタイムスタンプがあります。いくつかの WHERE 句のパラメーターを指定すると、最新のイベントが必要になります。
これが私たちが思いついたものです:
現在、これが戻るには時間がかかりすぎています。SQL を変更して、必要なものをより速く提供する方法はありますか? また、このようなことに対する投影戦略はありますか?
ありがとうホセ
sql - Vertica:重複/主キーのデータ検証
ロード中に、データが重複していないことを確認する検証手順を作成しようとしています。Verticaはこれをネイティブにサポートしていません:
Verticaは、データがロードされたときではなく、クエリが実行されたときに制約違反をチェックします。ロードプロセスの一部として制約違反を検出するには、NO COMMITオプションを指定したCOPY(ページ667)ステートメントを使用します。データをコミットせずにロードすることにより、ANALYZE_CONSTRAINTS関数を使用してデータのロード後チェックを実行できます。関数が制約違反を検出した場合、コミットしていないため、ロードをロールバックできます。
問題は、これをプログラムで行う方法がわからないことです。ストアドプロシージャが必要だと思いますが、verticaのストアドプロシージャの構文/制限に精通していません。手伝ってくれますか?これが私が持っているものです:
私の考えは、いくつかの条件付きロジックを実行することです。疑似コードは以下のとおりです。Verticaの準備を手伝ってもらえますか?
oracle - ORACLE から VERTICA へのレプリケーションを実装する方法は?
Oracle から Vertica へのプロセスを作成中です。大量のレポートを実行する Vertica DB を作成しようとしています。今のところ、Vertica はすべてクールです。スペースの使用は高速です。Oracle から Vertica にデータを取得する主要部分に到達するまでは、すべて順調です。OK、初期ロードはOK、Oracle から Vertica への CSV へのダンプ、ロード時間は冗談で問題ありません。まあ、単に速いです。悪い部分 -> データベースは稼働中です ORACLE/VERTICA - ORACLE でデータが変更されているため、VERTICA でデータを複製する必要があります。今すぐ: 私のテストと Vertica 挿入について理解できることから、1 秒あたり最大 20 回でない限り、更新は使用されません。したがって、リアルタイムのレプリケーションは問題外です。
VERTICA で明示的なデータ変更を行うと、パフォーマンスが低下するためです。
そのため、この問題を解決する方法についていくつかのアイデアを探していますが、できないことを知っています:
- ORACLE の生産構造を変更します。
- データのフィルタリングには ORACLE env リソースを使用します。
- VERTICA ロード プロセスで挿入、更新、または削除ステートメントを使用できません。
私が依存しているもの:
- コピーコマンドの使用
- データの一貫性
- 最大 60 分のウィンドウ (60 分ごと - 新しい/変更されたデータは VERTICA に移動する必要があります)。
コンティニュエント データ レプリケーションを見てきましたが、現在誰かが製品を売りたがっているようで、連絡が取れません。
database - Vertica での JOIN が「内部パーティションがメモリに収まりませんでした」で失敗する
結合された 10 個のテーブルからの大きなクエリに問題があります。ワイド ファクト テーブル (f1) からスター スキーマにデータを移行しています。まず、f1 からディメンション テーブルを作成し、次に新しいファクト テーブル (f2) にディメンション テーブルへの結合を作成して、対応する ID を取得します。
残念ながら、「内部パーティションがメモリに収まりませんでした」というエラーが表示されます。私が見るログから:
しかし、後で私が得るので、それもうまくいきません:
Vertica が明らかに結合を実行する方法を見つけようとしている間、これはしばらく続きますが、最終的に結合がメモリに収まらないというエラーで解決します。
結合を実行するために必要なメモリを最小限に抑える方法や、ディスクへのスピルが機能しない理由についてのヒントはありますか? パフォーマンス ヒットを処理できます。必要なのは、クエリを実行できることだけです。
vertica - Verticaでプロジェクションを再セグメント化するにはどうすればよいですか?
本番環境のいくつかのテーブルでanalyze_workloadを実行しましたが、いくつかのテーブルの1つの提案は、特定のプロジェクションを再セグメント化することです。出力は、投影を再セグメント化しても影響が少ないことを示しています。
1つのわずかな問題。これを実行しようとしているドキュメントには何も見つかりません。新しいプロジェクションを作成して古いプロジェクションを削除する以外に、これを行う方法はありますか?それは影響が少ないようには聞こえないので、私はそう思います。
よろしくお願いします。
php - PHP を使用した Vertica DB への接続
PHP を使用して Vertica データベースに接続する方法はありますか? mysql_connect() に似た関数ですか?
最終的に、Vertica データベースからデータを取得してローカルホストの MySQL データベースに保存するスクリプトを作成しようとしています。
必要に応じて、これを実現するために Python を使用したいと考えています。
sql - Vertica と結合
Vertica
DBとして使用するWeb分析ツールを適応させています。私は本当の問題を抱えていoptimizing joins
ます。いくつかのクエリに対して結合前のプロジェクションを作成してみました。これにより、クエリは非常に高速になりましたが、ファクト テーブルへのデータの読み込みが遅くなり、クロールされました。
ステージング テーブルからファクト テーブルにデータをロードするために使用する簡単なINSERT INTO ... SELECT * FROM
方法では、5 秒から 20 分以上かかります。
このため、結合前のプロジェクションをすべて削除し、データベース デザイナーを使用してクエリ固有のプロジェクションを設計しようとしましたが、十分ではありません。これらのプロジェクションを使用しても、単純な結合には約 14 秒かかりますが、結合前のプロジェクションでは約 1 秒かかります。
私の質問は次のとおりです。結合前のプロジェクションがデータ挿入をこれほど遅くするのは正常ですか?そうでない場合、何が原因である可能性がありますか? これが正常な場合、それは私たちにとってショーストッパーです。結合を高速化するために使用できる他の手法はありますか?
Vertica を 5 ノード クラスタで実行しており、各ノードには 2 つのクアッド コア CPU と 32 GB のメモリがあります。この例のクエリのテーブルには、それぞれ 188,843,085 行と 25,712,878 行があります。
EXPLAIN の出力は次のようになります。
vertica - 最高のVerticaデータロードテクニック?
みなさん、こんにちは!-データがVerticaにどのようにロードされるかを確認するのに問題があります!! このあたりにVerticasdbaがあるかどうかを知る必要があります!どうやってやるの?
つまり、フロントエンドとして他のRDBMSがあり、Verticaはバックで実行され、すべてのハードワークなどを実行します。verticaとのトランザクションは、それほどうまく機能しないためです。(更新速度が悪い)。
だから私はこれでいくつかの助けが必要です!レプリケーションツールのように、またはスクリプトまたはETL(どちらのツールが優れているか)によって実行される場合!THX
sql - SQL で重複データをグループ化する方法
私は次の方法でデータを持っています
今、出力を次のように表示したい
基本的に、重複するデータをマージしたいと考えています。誰でもコードを手伝ってもらえますか。OVERLAPS 句で解決策があれば、遅延の場所で時間を管理できます。
ありがとうリシャブ