問題タブ [hstore]
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.
postgresql - hstore はどのようにデータを内部に保存しますか?
私は postgresql hstore 拡張機能を使用しており、データが内部でどのように保存されているのか興味があります。実装の詳細を確認するには、hstore ソース コードのどこを参照すればよいか教えてください。
python - Heroku の django-hstore
Heroku (cedar stack) にデプロイされた Django (v 1.3.3) プロジェクトがあります。settings.DATABASES の構成には、推奨される dj_database_url を使用します。すべてがうまく機能します(この時点まで)。
ただし、アプリケーションの一部にdjango-hstoreを使い始めたいと思っています。ドキュメントによると、settings.py のデータベース エンジンを次のように変更する必要があります。
その結果、私の settings.py ファイルで、次のことを行います。
ローカルでは、すべてがうまく機能します。そして、hstore フィールドを持つ私のモデルはうまく機能します (値は辞書です)。
ただし、Heroku にデプロイすると、データベース エンジンが次のようにリセット/オーバーライドされます。
それをデバッグしようとして、設定ファイルにエンジンを設定した後に印刷を入れました。次に、bash を実行します。
その後:
これを実行すると、印刷ステートメントは、目的のエンジン (django_hstore.postgresql_psycopg2) を使用した正しい (目的の) データベース設定を表示します。ただし、次の場合:
データベース エンジンが django_hstore ではなく、通常の (非 hstore) 値に戻っていることがわかります。また、モデルの 1 つをインポートして get を実行してオブジェクトをロードすると、hstore フィールドの値は文字列になり、キーにアクセスしようとすると次のエラーが発生します。
この作品はローカルで見つけることに注意してください。しかし、heroku にデプロイした後、辞書として値にアクセスしようとすると、上記の TypeError がスローされます。
私の質問は次のとおりです。
- 私のエンジンがオーバーライドされている理由を誰か知っていますか? もしそうなら、どうすればこれを修正できますか?
また
- エンジンを変更する必要がない可能性がある Django 1.3.3 で hstore フィールドを使用する別の方法はありますか (したがって、もう少し Heroku フレンドリーになります)
postgresql - PostgreSQL 9.2 での hstore キーの名前変更
私は PostgreSQL の hstore 機能 (9.2) を評価してきましたが、細かいマニュアルで明示されていないのは、キーの名前を変更する方法だけです。たとえば、キーの名前を に変更するにはどうすれc
ばよいai_count
ですか?
"c"=>"3", "ai_voltage"=>"3", "ai_temperature"=>"28"
これを行う直接的な方法はなく、c
キーをキーに複製してからキーai_count
をドロップする必要があると思いc
ます。理想的には、複数のレコードに適用できるワンライナーとして、これを行うにはどうすればよいですか?
c - hstoreを使用したC言語のPostgreSQLUDF
CでPostgreSQLの拡張機能を作成していますが、UDFでhstoreを使用する必要があります。(pgxcを使用して)エラーなしでビルドできますが、SQLクエリで関数を使用できません。
試しましPG_LIBS=hstore
たが、ライブラリの読み込み中に未定義の参照エラーが発生しました。
次の試みはSHLIB_LINK=-L/usr/lib/postgresql/9.1/lib -lhstore
(libhstore.soはシステムに存在せず、hstore.soのみであるため、symとハードリンクで試しました)、
ruby-on-rails - Rails/postgres: 1 人のユーザーの電話番号のリストを保存する最良の方法は何ですか?
そのため、電話番号のリストを 1 つの列に格納する方法について少し混乱しています。要件は次のとおりです。
- ユーザーは複数の電話番号を持つことができます。
- 電話番号は一意である必要があるため、ユーザー A がユーザー B が使用する電話番号を追加した場合、検証エラーが表示されます。
- ユーザーが複数の電話番号を持っている場合は、デフォルトの電話番号を選択する必要があります。
- ソリューションは Postgresql と互換性がある必要があります。
私は4つの可能な解決策を考えました:
- HStore:
phone_number
すべての電話番号のハッシュを格納するフィールドを作成します。例えば{1=>"+1-800-123-1234", 2=>"9237492734", "default"=>1}
。この場合、新しい電話番号が一意であることを確認するために、多くのクエリを実行する必要があります。たとえば、クエリを実行してからUser.where("phone_number @> ('1' => '+1-800-123-1234')")
2 をチェックインする必要がありますUser.where("phone_number @> ('2' => '+1-800-123-1234')")
...など。 - 1 つのフィールドに電話番号の配列:
phone_number
「+1-800-123-1234,9237492734」のようなカンマ区切りの電話番号を格納します。既存の電話番号を確認するのは簡単User.where("phone_number LIKE '%+1-800-123-1234%'")
ですが、データベースがそれを取得するには時間がかかります。default_phone
もテーブルに追加されるか、慣例により最初の電話番号がデフォルトの電話番号になります。 - 電話番号を 3 つに制限し (これで十分です)、
phone_number_1
、phone_number_2
およびphone_number_3
フィールドを作成します。電話番号の一意性をチェックすると、3 つのクエリが消費されます。も追加する必要がありますdefault_phone
。 - 新しいテーブル
phone_numbers
(id:integer、user_id:integer、phone_number:string、default:boolean) を追加し、User モデルと has_many 関係を設定します。これは本当に魅力的ではありません... 1つのフィールドに対してテーブル全体を作成します。ただし、検索が高速で、各ユーザーに無制限の電話番号があります.
アイデア、ヒント、提案は大歓迎です。
postgresql - 時系列の Postgre hstore
私は postgres を初めて使用し、hstore 拡張機能を試しています。ガイダンスを探しています。販売するさまざまな製品の時系列データに関する基本的なレポートをサポートする必要があります。製品ごとに「タイムスタンプ、値」形式の大量のデータがあります。このデータは、各製品の csv ファイルで入手できます。
このデータをキー値形式で格納するために hstore を使用することを考えています。1 つの製品のすべての時系列データを 1 つの hstore オブジェクトに格納できると仮定します。このデータを特定の時間でクエリできるようにする必要があります。たとえば、特定の時間での製品の価値は何でしたか? また、製品の価格が 100 ドルを超えた時間を取得するなど、単純なクエリを実行する必要もあります。製品 ID 列と hstore 列を持つテーブルを作成する予定です。しかし、これを機能させる方法についてはあまり明確ではありません。
- hstore 列は、csv に存在する数千のタイムスタンプ、値レコードからロードする必要があります。新しい csv を取得するたびに、hstore を追加する必要があります。
- テーブルには、productId と対応する Timeseries データを格納する必要があります。hstore の使用が役立つかどうか教えてください。はいの場合、上記で説明したように csv からデータをロードするにはどうすればよいですか。また、hstore での挿入/更新のパフォーマンスに影響がある場合は、データが大きくなるにつれて、経験を共有してください。
sql - 1 つの hstore 値に含まれるキーと値のペアの最大数はいくつですか?
mapfeatures_20120813
約 1000 行の 2 列 (タグと pky) を持つpostgres テーブル ( ) があります。各行はhstore
と 主キーで構成されます。
分析のために、これらすべての単一の hstore キーと値のペアを単一の hstore -row にプッシュする必要がありますが、これを解決する方法がわかりません。
したがって、最初にすべての行を単一行のテキスト フィールドに変換します。
2 番目のステップhstore
では、このテキスト フィールドから を作成します。
しかし問題は、1000 を超えるキーと値のペアのうち 97 のみが新しい hstore-field に書き込まれることです。また、結果にパターンが見られません。完全に混同されています。
hstore
単一のフィールドに収まるキーと値のペアの数について、フィールドに何らかの制限がありhstore
ますか? ドキュメントには何も書かれていません。
sql - 2 つのキーと値のストアを作成するための PostgreSQL と hstore
2 つのキー バリュー ストアを作成したいと考えています。1 つは URL のキーと url の値を持ち、もう 1 つは URL (これは他のテーブルの値) とスコア (整数) を持ちます。
hstoreのドキュメントを読んでみましたが、テーブルの作成方法がわかりません。
URLを文字列として表現したい。URLをその「親URL」にマッピングしています。スコアの考え方は、インデックスが高いほど Web サイトが優れていることを示します (他のページへの接続性とアクセス時間の考え方に基づいて計算されます)。基本的に、いくつかのサンプル データは次のようになります。
ruby - HstoreとRails
最新バージョンのactiverecord-postgres-hstoregemを使用してRails3.2.9プロジェクトでHstoreを使用しようとしていますが、Hstoreの値にActiveRecordが提供するstore_accessorを使用するのに少し問題があります。
私のモデルは次のようになります。
Railsコンソールに入ると、次のようになります。
保存に注意してください!人を更新します。コンソールを終了してレコードに戻ると、元のデータセットに戻ります。
age
また、アクセスしようとするとnilが返されることに注意してください。
誰かがここstore_accessor
でActiveRecordでメソッドが何をするのか疑問に思っていたら
store.rb
send(store_attribute)[key]
コンソールで同じ行を実行すると、かなり奇妙なことになります。
ここで何が起こっているのかについて何か考えはありますか?
postgresql-9.1 - 9.0 と 9.1 の両方で hstore を適切に導入するスクリプトを作成するにはどうすればよいですか?
hstore
開発中のプロジェクトのデータベースに型を導入しようとしています。しかし、問題は、開発マシンにインストールされている Postgres サーバーのバージョンが、運用マシンよりも少し新しいことです。コマンドをローカルで実行することはできますがCREATE EXTENSION
、このコマンドは運用マシンでは使用できません。
hstore
9.1 と 9.0 の両方にインストールするスクリプトを作成する方法はありますか?