問題タブ [database-scan]
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.
database - データベースをスキャンし、特定のタグの変更を電子メールで送信する
私はいくつかの商品を含むデータベースを持っています。これらの商品はこのデータベースに価格があります。どういうわけかこのデータベースをスキャンしたいのですが、製品の価格が変わったときに特定のアドレスに電子メールを送信したいのですが、これは可能ですか?phpを使用するプログラミング言語は何ですか?そして、私はこの問題を管理するために何ができますか?私はデータベースに不慣れで、助けていただければ幸いです。
どうもありがとうございます
performance - HBase で prefixfilter または rowkey range scan を使用する必要がありますか
prefixfilter を使用してクエリを実行すると、なぜ非常に遅いのかわかりません。HBase を照会する最良の方法を誰かが説明してくれませんか。ありがとうございます。
filter - hbase スキャンの時間範囲が古いバージョンを返す
timerange を使用した hbase スキャンについて 1 つ質問があります。「test」テーブルを作成します。1 つのファミリー「cf」と 1 つのバージョンがあり、そのテーブルに 4 行のデータを入れ、timerange を使用してそのテーブルをスキャンすると、timerange 内で古いバージョンの行が取得されます。
例えば:
次に、このテーブルをスキャンすると、次の出力が得られます。
そうです、row3には最新バージョンがあります。
ただし、timerangeでスキャンを使用すると、次のようになります。
行3の古いバージョンを返しますが、このテーブルではバージョンを1に設定しました
maxtimestamp を増やすと、次のようになります。
0.0330 秒で 3 行
そうですよね、わかります。
私が望むのは、時間範囲内でテーブルをスキャンすることです。最新バージョンのみを返します。タイムスタンプフィルターがあることは知っていますが、そのフィルターは特定のタイムスタンプのみをサポートし、時間範囲はサポートしません。
時間範囲内でテーブルをスキャンし、最新のバージョンのみを返す方法はありますか?
私は自分の timerangefilter を書き込もうとしています。以下は私のコードです。
}
この jar を hbase-env.sh の hbase HBASE_CLASSPATH に追加しますが、次のエラーが発生します。
org.apache.hadoop.hbase.client.ScannerCallable@a9255c、java.io.IOException: IPC サーバーが呼び出しパラメーターを読み取ることができません: readFields でエラーが発生しました
.net - フィルタを使用した DynamoDB スキャン、「is-in-set」条件に一致
DynamoDB テーブルで Scan オペレーションを使用して、アイテムを特定の「タグ」と照合しようとしています。アイテムのタグは、単一のセット属性に格納されます。例えば:
現在、プレミアム サポートでサポート ケースを開いていますが、時間がかかります。私がやりたいのは、「タグ」にエントリ「windows」と「iis」が含まれているマシンを照合することです。
CONTAINS
たとえば、モードを使用し、単一の AttributeValue を "windows" の文字列値で指定することで、単一の 1 つに一致させることができます。
ただし、CONTAINS
単一の AttributeValue または複数の AttributeValue でのセットはサポートされていません。エラーが発生します。
だから私は試しましたIN
(AWSプレミアムサポートも提案しました):しかし、単一のAttributeValueを使用するかどうか(「ウィンドウ」を再度検索するか、複数のウィンドウを検索するだけでも)、結果はゼロです。
のドキュメントIN
はかなり貧弱です。操作は 4 つの有益でない言葉で説明されています。
Q&A のいくつかのラウンドでおそらくサポートが行われるのを待っている間、これを読んでいる人で、この種の Scan のクエリに精通している人はいますか? (できれば、最初に回答で何を言っているのかをテストしてください。明らかなものを試したと思います!)
参考文献については、ドキュメントのスキャン: http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html
java - 開始行、終了行、フィルターを使用して HBase でスキャンを使用する
特定の基準を満たすすべての行をスキャンするには、HBase で Scan を使用する必要があります。これが、フィルター (実際には 2 つの SingleColumnValueFilter を含む複合フィルター リスト) を使用する理由です。これで、rowKeys が次のように構造化されました。
追加の要件として、「abx|1」で始まるrowKeyを持つ行のみを反復処理する必要があります
さて、質問
- フィルタ リストで追加の PrefixFilter を使用すると、スキャナは常にすべての行をスキャンしますか (そして、それぞれにフィルタを適用しますか)?
- startRow (接頭辞) と filterlist (PrefixFilter なし) を渡して Scan をインスタンス化すると、指定された行の接頭辞からスキャンが開始されることがわかりました。それで、私が「abx」をstartRowとして使用していると仮定すると、スキャンはabyもスキャンしますか?
- new Scan(startRow, endRow) を使用してから setFilter を使用すると、どのような動作になりますか? つまり、欠落しているコンストラクタ Scan(byte [] start, byte [] end, Filter filter) はどうですか?
前もってありがとう
アンドレア
mysql - すべての行をスキャンするmysqlクエリ
テーブル内のすべての行をスキャンしている理由について、mysqlクエリに頭を悩ませようとしている人
私は2つのテーブルtopic_entryとtopic_userを持っています
これは私が実行しようとしているクエリです
Explain 出力は、すべての行をスキャンしていることを示しています。
indexing - HBase はプライマリ インデックスを使用しますか?
HBase はどのようにルックアップを実行し、レコードを取得しますか? たとえば、RDBMS の B ツリーに相当する HBase は何ですか?
[編集]
HBase が -ROOT- と .META. を解決する方法を理解しています。テーブルを使用して、データが保持されているリージョンを見つけます。しかし、ローカル ルックアップはどのように実行されるのでしょうか。
よりよく説明するために、以下に例を示します。
- キー 77 のレコードの検索 (取得またはスキャン) を開始しています。
- キーが含まれている HBase クライアントの数値は、RegionServer X によって保持されている 50 ~ 100 リージョンに含まれています。
- HBase クライアントは RegionServer X に接続してデータを取得します。
RegionServer X はどのようにしてレコード 77 の場所を見つけますか?
RegionServer は、領域のキーにある種のルックアップ テーブル (たとえば、RDBMS の B ツリーなど) を使用しますか? それとも、 50 から 77 までのレコードについて、StoreFiles のすべての内容を読み取る必要がありますか?
android - SQLiteデータベースをスキャンしようとしています。アンドロイド
同じ「名前と番号」(両方とも文字列として保存されている)のエントリがまだない場合は、基本的にSQLiteデータベースに新しいエントリを作成する保存ボタンがあります。同じ名前と番号のエントリがすでに存在する場合は、上書きするかどうかを尋ねるポップアップが表示されます。
実際に発生するのは、エントリがすでに存在するかどうかに関係なく、新しいエントリを作成することです。[保存]をクリックすると実行されるコード:
ScoutingFormData.javaのコード:
同じ名前+番号のエントリがすでに存在する場合に、-1が返される可能性があるかどうかはわかりません。
filter - HBaseの行に複数のQualifierFilterを適用する方法
2つのQualifierFiltersを使用してHBaseテーブルのスキャンをフィルタリングしたいと思います。特定の列'col_A'と(!)特定の他の列'col_B'を持つテーブルの行のみを取得したいことを意味します。
現在のアプローチは次のようになります。
ResultScannerは、このスキャンからの結果を返しませんが、HBaseテーブルには、列「col_A」と「col_B」の両方を持つ行がいくつかあります。
filter1のみをスキャンに適用すると、すべてが正常に機能し、「col_A」を持つすべての行が取得されます。filter2のみをスキャンに適用する場合も同じです。'col_B'を持つすべての行を取得します。
これら2つのフィルターを組み合わせた場合にのみ、結果は得られません。
col_Aとcol_Bを持つテーブルから行のみを取得する正しい方法は何でしょうか?
sql - delete ステートメントで無視されたクラスター化されたカバリング インデックス。テーブル スキャンが発生する
SQL Server 2005 では、主キー (および主キーのみ) で使用可能なクラスター化インデックスを使用する代わりに、テーブル スキャンを実行する方が効率的であると判断されるのはなぜですか?
免責事項:主キーには、列が含まれていない非クラスター化の非一意のインデックスもあります。これは私にとって不可解であり、私たちはすでに良いオフィスの笑い声を上げています. このインデックスが問題になる場合は、誰を撃つべきかがわかります。残念ながら、これは本番サイトであり、単純に切り取ることはできませんが、必要に応じてそうする計画を立てます。
多分問題は精神的に欠陥のある逆指数ではありませんが...
FogLight PASS によると、主キーで行を削除すると、次のステートメントにより、1 時間に約 600 回、最大 1,000 万行のテーブルがスキャンされます。
テーブル DDL:
クラスター化インデックスの制約の詳細:
同じテーブルの一意ではない非クラスター化インデックス:
[ID] 列には、同じ大きさのテーブルを指す外部キー制約もあります。
600 回のテーブル スキャンは、同じステートメントを使用したこのテーブルでの 1 時間あたりの合計削除操作の約 4% です。したがって、このステートメントのすべての実行でテーブル スキャンが発生するわけではありません。
言わずもがなですが、なんと言ってもパッキングしたい厄介なI/Oの数々です。