問題タブ [phoenix]
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 または spark または mapreduce での並べ替えと結合
以下のような内容のテーブルが 2 つあります。
私は結果を下回ろうとしています。
上記の i/p および o/p に従って、列 id3、id4、name、および desc に基づいて 2 つのテーブルを結合する必要があります。アクティブなレコードが存在する場合は、アクティブなレコードを返す必要があります。ただし、非アクティブなレコードのみが存在する場合は、最も古い非アクティブなレコードを結合する必要があります。
私が望んでいた答えに近づかなくなったさまざまなクエリを試しました。結合された 4 つの列はすべて非プライマリ フィールドですが、null ではありません。2 つのテーブル間には、1 対多または多対多の関係があります。
私は Apache phoenix に取り組んでおり、ソリューションが Hadoop Mapreduce または Apache Spark にある場合も問題ありません。
私が書いたサンプルクエリは次のとおりです。
誰でも私を助けてもらえますか?
hbase - Phoenix を Hbase スタンドアロンで使用すると NoSuchMethodError がスローされる
Hbase(1.1) と Phoenix (hbase 1.1 の場合は 4.4) の tar.gz パッケージをダウンロードしました。
スタンドアロン モードでの hbase のセットアップは機能し、hbase シェルに入ることができます。
次に、phoenix dir のすべての .jar ファイルを Hbase の lib フォルダーに配置しました。
ただし、SQL シェルを起動しようとするたびに、次のエラーが発生します。私は一日中これにいて、ここで盲目になっています。
Phoenix Web サイトのインストール手順は非常に短く、基本的には、jar をコピーして .py スクリプトを実行すると書かれています。
更新:誰かが同じ問題に遭遇した場合、私はこれを(まだ)修正できませんでしたが、新しいマシンで試してみるとうまくいきました。したがって、おそらく競合するライブラリがどこかにあるのでしょう。
RegionCoprocessorEnvironment.getRegion()Lorg/apache/hadoop/hbase/regionserver/Region; org.apache.phoenix.coprocessor.MetaDataEndpointImpl.createTable(MetaDataEndpointImpl.java:1054) で ... org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1196) で org.apache でさらに 10 個。 hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213) org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287) org.apache.hadoop.hbase.protobuf. generated.ClientProtos$ClientService$BlockingStub.execService(ClientProtos.java:32675) at org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1615)
database - hbaseでフェニックス結合操作が機能しない
hbase-1.1.0.1
とphoenix-4.4.0-HBase-1.1-bin
バージョンを使用しています。SQL クエリを実行するには、SQuirrel
SQL クライアントを使用しています。
Select *
、Select count(*)
、サブクエリなどの単純なクエリwhere clause
は正常に機能していますが、JOIN
操作はまったく機能していません。これについて私を助けてください。
mysql - Apache Phoenix での集計とグループ化
集計とグループ化関数を使用している Apache Phoenix でクエリを実行しようとしています。mysql で同じクエリを実行しましたが、動作しますが、Phoenix では mysql クエリに基づいてクエリを実行しましたが、失敗しました。以下の mysql クエリと Phoenix クエリを参照してください。
MySQL:
結果:
id3 id4 name descr status min(日付)
17773 8001300701101 name1 descr1 非アクティブ 20121202
17785 9100000161822 name3 descr3 非アクティブ 20121201
フェニックス クエリ:
MySQL と Phoenix のクエリに違いはありません。
しかし、私は以下のエラーが発生しています 誰か説明してもらえますか?
jdbc - Phoenix に接続している Squirrel クライアント - タイムアウト例外
Squirrel クライアント経由で Phoenix に接続しようとしています。Squirrel ログで次のログを受信しています。ログは、zooperkeeper への ClientConnection が確立されていることを示していますが、SQLClient 接続がタイムアウト例外で確立されているときに失敗します。
phoenix クライアント jar を Squirrel の lib ディレクトリにコピーしたところ、ドライバーが正常に登録されました。また、localhost で SQLLine.py ユーティリティを実行すると、SQL コマンドラインが Phoenix に正常に読み込まれ、コマンドを実行できます。phoenix コア jar も $HBASE_HOME/lib フォルダーに追加しました。
java - MapReduce を書き込むときの Apache Phoenix Double Datatype の問題
Apache Phoenix を使用して Hbase にテーブルを作成しています。これは、セカンダリ インデックス機能と SQL のようなデータ型を提供するためです。Double と Varchar の両方の列を持つ phoenix を使用してテーブルを作成しました。
Phoenix は以下のように Double 値を ByteArray として Hbase に格納しています
Phoenix を使用せずに Hbase SCAN API から直接値を読み取るように mapreduce プログラムを作成しました。Phoenix と mapreduce の両方の出力を参照してください。以下のように、すべての正の double 値は負の値として返され、負の double 値は 0.018310546875 として返されます。
-