Sfoglia il codice sorgente

[docs] Translation of blogs into Japanese after October 2020

Tatsuo Kawasaki 4 anni fa
parent
commit
ab50e069b6

+ 216 - 0
docs/gethue/content/jp/posts/2020-10-20-querying-live-streams-of-data-with-flink-sql.md

@@ -0,0 +1,216 @@
+---
+title: Flink SQL を使用したデータのライブストリームのクエリに関するチュートリアル
+author: Romain
+type: post
+date: 2020-10-20T00:00:00+00:00
+url: /blog/tutorial-query-live-data-stream-with-flink-sql/
+sf_thumbnail_type:
+  - none
+sf_thumbnail_link_type:
+  - link_to_post
+sf_detail_type:
+  - none
+sf_page_title:
+  - 1
+sf_page_title_style:
+  - standard
+sf_no_breadcrumbs:
+  - 1
+sf_page_title_bg:
+  - none
+sf_page_title_text_style:
+  - light
+sf_background_image_size:
+  - cover
+sf_social_sharing:
+  - 1
+sf_related_articles:
+  - 1
+sf_sidebar_config:
+  - left-sidebar
+sf_left_sidebar:
+  - Sidebar-2
+sf_right_sidebar:
+  - Sidebar-1
+sf_caption_position:
+  - caption-right
+sf_remove_promo_bar:
+  - 1
+ampforwp-amp-on-off:
+  - default
+categories:
+  - Querying
+  - Tutorial
+  - Version 4.9
+
+---
+リアルタイムでのデータクエリは現代の標準になりつつあります。今すぐに決定を下す必要があるときに、翌日や一週間先まで待ちたい人はいないでしょう。
+
+[Apache Flink SQL](https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/) は、現在では、バインド/アンバインドされたデータのストリーム上で SQL を提供するエンジンです。ストリームは様々な [ソース](https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/connectors/) から来ることができます。ここでは人気のある [Apache Kafka](https://kafka.apache.org/) を選びました。
+
+このチュートリアルは、[Building an End-to-End Streaming Application (エンドツーエンドのストリーミングアプリケーションを構築する)](https://flink.apache.org/2020/07/28/flink-sql-demo-building-e2e-streaming-application.html) 素晴らしい FLink SQL のデモに基づいていますが、エンドユーザーのクエリ体験に焦点を当てていきます。
+
+## コンポーネント
+
+シンプルにするために、すべてのトピックは “one-click” Docker Compose プロジェクトにまとめられており、これらが含まれています:
+
+* [Flink SQL demo](https://flink.apache.org/2020/07/28/flink-sql-demo-building-e2e-streaming-application.html#starting-the-demo-environment) からの Flink クラスター
+* [Flink SQL Gateway](https://github.com/ververica/flink-sql-gateway)  - Hue Editor から SQL クエリを投入できるようにする。以前に次のブログで説明しています。[SQL Editor for Apache Flink SQL](https://gethue.com/blog/sql-editor-for-apache-flink-sql/)
+* [Hue Editor](https://github.com/cloudera/hue/tree/master/tools/docker/hue) - Flink Editor を使用するように設定されています
+
+
+また、Flinkのバージョンを、1.11.0 から SQL Gateway が必要とする 1.11.1 に移行しました。Flinkは様々なソース (Kafka, MySql, Elastic Search) をクエリすることができるので、イメージにはいくつかの追加のコネクタ依存関係もプリインストールされています。
+
+
+![Stream SQL Editor](https://cdn.gethue.com/uploads/2020/10/stream-editor.png)
+
+## 一行でのセットアップ
+
+設定をフェッチして全てを開始するためのものです:
+
+    mkdir stream-sql-demo
+    cd stream-sql-demo
+    wget https://raw.githubusercontent.com/romainr/query-demo/master/stream-sql-demo/docker-compose.yml
+
+
+    docker-compose up -d
+    >
+    Creating network "stream-sql-demo_default" with the default driver
+    Creating hue-database                  ... done
+    Creating stream-sql-demo_jobmanager_1 ... done
+    Creating stream-sql-demo_mysql_1       ... done
+    Creating ksqldb-server                 ... done
+    Creating stream-sql-demo_zookeeper_1   ... done
+    Creating flink-sql-api                 ... done
+    Creating stream-sql-demo_taskmanager_1 ... done
+    Creating hue                           ... done
+    Creating ksqldb-cli                    ... done
+    Creating stream-sql-demo_kafka_1       ... done
+    Creating stream-sql-demo_datagen_1     ... done
+
+
+そうすると、これらの URL が利用できるようになります:
+
+* [http://localhost:8888/](http://localhost:8888/) Hue Editor
+* [http://localhost:8081/](http://localhost:8081/) Flink Dashboard
+
+同様に、Flink SQL Gateway の実行は次のように行います:
+
+    curl localhost:8083/v1/info
+    > {"product_name":"Apache Flink","version":"1.11.1"}
+
+全てを停止するには以下を実行します:
+
+    docker-compose down
+
+## クエリの体験
+
+ライブSQLは、ベータ版である新しいエディタを必要とすることに注意してください。まもなく、同じエディタのページ上で同時に実行されている複数のステートメントを提供し、より堅牢になることに加えて、ライブ結果グリッドをもたらすようになります。
+
+特に SQL自動補完とEditor 2ですが、更なる改善はまだ道半ばです。将来的には Web Socket を使用する [Task Server](https://docs.gethue.com/administrator/administration/reference/#task-server) は別のタスクとして実行し、長時間実行されるクエリが API サーバーでのタイムアウトを防ぐことを可能にします。
+
+**注記**
+
+既存の Hue Editor をお持ちで ksqlDB を指定したい場合は、この設定変更で有効にしてください:
+
+    [notebook]
+    enable_notebook_2=true
+
+    [[interpreters]]
+
+    [[[flink]]]
+    name=Flink
+    interface=flink
+    options='{"url": "http://localhost:8083"}'
+
+## Flink SQL
+
+[Flink のドキュメント](https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/) やコミュニティは情報の宝庫です。ここではクエリを始めるための2つの例を紹介します:
+
+* データのモックのストリーム
+* Kafka のトピックを通ってくるいくつかの実際のデータ
+
+{{< youtube vbObcaTWRkI >}}
+
+### Hello World
+
+このタイプのテーブルは便利で、自動的にレコードを生成します:
+
+    CREATE TABLE datagen (
+      f_sequence INT,
+      f_random INT,
+      f_random_str STRING,
+      ts AS localtimestamp,
+      WATERMARK FOR ts AS ts
+    ) WITH (
+      'connector' = 'datagen',
+      'rows-per-second'='5',
+      'fields.f_sequence.kind'='sequence',
+      'fields.f_sequence.start'='1',
+      'fields.f_sequence.end'='1000',
+      'fields.f_random.min'='1',
+      'fields.f_random.max'='1000',
+      'fields.f_random_str.length'='10'
+    )
+
+照会するには次のように行います:
+
+    SELECT *
+    FROM datagen
+    LIMIT 50
+
+
+### タンブリング
+
+Flink のユニークな点の一つは、時間やオブジェクトのウィンドウに対して SQL クエリを提供していることです。主なシナリオはレコードのローリングブロックを[グループ化](https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/queries.html#group-windows) して[集計](https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/queries.html#aggregations)を行うことです。
+
+これはより現実的で、Flink SQL のデモから来ています。レコードのストリームは `user_behavior` Kafka トピックから来ています:
+
+
+    CREATE TABLE user_behavior (
+      user_id BIGINT,
+      item_id BIGINT,
+      category_id BIGINT,
+      behavior STRING,
+      ts TIMESTAMP(3),
+      proctime AS PROCTIME(),   -- generates processing-time attribute using computed column
+      WATERMARK FOR ts AS ts - INTERVAL '5' SECOND  -- defines watermark on ts column, marks ts as event-time attribute
+    ) WITH (
+      'connector' = 'kafka',  -- using kafka connector
+      'topic' = 'user_behavior',  -- kafka topic
+      'scan.startup.mode' = 'earliest-offset',  -- reading from the beginning
+      'properties.bootstrap.servers' = 'kafka:9094',  -- kafka broker address
+      'format' = 'json'  -- the data format is json
+    )
+
+
+いくつかの生のレコードを突いてみます:
+
+    SELECT * from user_behavior LIMIT 50
+
+
+または、1日の各時間帯に発生している注文数をライブでカウントします:
+
+    SELECT
+      HOUR(TUMBLE_START(ts, INTERVAL '1' HOUR)) as hour_of_day,
+      COUNT(*) as buy_cnt
+    FROM
+      user_behavior
+    WHERE
+      behavior = 'buy'
+    GROUP BY
+      TUMBLE(ts, INTERVAL '1' HOUR)
+
+
+&nbsp;
+
+次のエピソードでは、[importer](https://gethue.com/querying-exploring-the-instacart-dataset-part-1-ingesting-the-data/) を介して生のデータストリームから、簡単に直接テーブルを作成する方法をデモします。
+
+ご意見やご質問はありますか?お気軽にこちらにコメントしてください!
+
+これらのプロジェクトは全てオープンソースであり、フィードバックや貢献を歓迎します。HueEditorの場合は [Forum](https://discourse.gethue.com/) や [Github issues](https://github.com/cloudera/hue/issues) をご利用ください。
+
+
+その先へ!
+
+Romain

+ 174 - 0
docs/gethue/content/jp/posts/2020-10-20-querying-live-streams-of-data-with-kafka-sql.md

@@ -0,0 +1,174 @@
+---
+title: ksql (Kafka SQL) を使用したデータのライブストリームのクエリに関するチュートリアル
+author: Romain
+type: post
+date: 2020-10-20T00:00:00+00:00
+url: /blog/tutorial-query-live-data-stream-with-kafka-sql/
+sf_thumbnail_type:
+  - none
+sf_thumbnail_link_type:
+  - link_to_post
+sf_detail_type:
+  - none
+sf_page_title:
+  - 1
+sf_page_title_style:
+  - standard
+sf_no_breadcrumbs:
+  - 1
+sf_page_title_bg:
+  - none
+sf_page_title_text_style:
+  - light
+sf_background_image_size:
+  - cover
+sf_social_sharing:
+  - 1
+sf_related_articles:
+  - 1
+sf_sidebar_config:
+  - left-sidebar
+sf_left_sidebar:
+  - Sidebar-2
+sf_right_sidebar:
+  - Sidebar-1
+sf_caption_position:
+  - caption-right
+sf_remove_promo_bar:
+  - 1
+ampforwp-amp-on-off:
+  - default
+categories:
+  - Querying
+  - Tutorial
+  - Version 4.9
+
+---
+リアルタイムでのデータクエリは現代の標準になりつつあります。今すぐに決定を下す必要があるときに、翌日や一週間先まで待ちたい人はいないでしょう。
+
+データのストリームは [ksqlDB](https://ksqldb.io/) を介してクエリできる [Apache Kafka](https://kafka.apache.org/) のトピックから来ています。
+
+
+## コンポーネント
+
+シンプルにするために、すべてのトピックは "one-click" Docker Compose プロジェクトにまとめられており、これらが含まれています:
+
+* ksqlDB - [ksqlDB quickstart](https://ksqldb.io/quickstart.html#quickstart-content) から
+* [Hue Editor](https://github.com/cloudera/hue/tree/master/tools/docker/hue) - ksqlDB エディタを使用するように設定されています
+
+
+![Stream SQL Editor](https://cdn.gethue.com/uploads/2020/10/ksql-editor.png)
+
+## 一行でのセットアップ
+
+設定をフェッチして全てを開始するためのものです:
+
+    mkdir stream-sql-demo
+    cd stream-sql-demo
+    wget https://raw.githubusercontent.com/romainr/query-demo/master/stream-sql-demo/docker-compose.yml
+
+
+    docker-compose up -d
+    >
+    Creating network "stream-sql-demo_default" with the default driver
+    Creating hue-database                  ... done
+    Creating stream-sql-demo_jobmanager_1 ... done
+    Creating stream-sql-demo_mysql_1       ... done
+    Creating ksqldb-server                 ... done
+    Creating stream-sql-demo_zookeeper_1   ... done
+    Creating flink-sql-api                 ... done
+    Creating stream-sql-demo_taskmanager_1 ... done
+    Creating hue                           ... done
+    Creating ksqldb-cli                    ... done
+    Creating stream-sql-demo_kafka_1       ... done
+    Creating stream-sql-demo_datagen_1     ... done
+
+
+そうすると、Hue Editor は [http://localhost:8888/](http://localhost:8888/) にセットアップされます。
+
+同様に、ksqlDB API の実行は次のように行います:
+
+    curl http://localhost:8088/info
+    > {"KsqlServerInfo":{"version":"0.12.0","kafkaClusterId":"DJzUX-zaTDCC5lqfVwf8kw","ksqlServiceId":"default_","serverStatus":"RUNNING"}}
+
+全てを停止するには以下を実行します:
+
+    docker-compose down
+
+## クエリの体験
+
+ライブSQLは、ベータ版である新しいエディタを必要とすることに注意してください。まもなく、同じエディタのページ上で同時に実行されている複数のステートメントを提供し、より堅牢になることに加えて、ライブ結果グリッドをもたらすようになります。
+
+特に SQL自動補完とEditor 2ですが、更なる改善はまだ道半ばです。将来的には Web Socket を使用する [Task Server](https://docs.gethue.com/administrator/administration/reference/#task-server) は別のタスクとして実行し、長時間実行されるクエリが API サーバーでのタイムアウトを防ぐことを可能にします。
+
+**注記**
+
+既存の Hue Editor をお持ちで ksqlDB を指定したい場合は、この設定変更で有効にしてください:
+
+    [notebook]
+    enable_notebook_2=true
+
+    [[interpreters]]
+
+    [[[ksqlDB]]]
+    name=ksqlDB
+    interface=ksql
+    options='{"url": "http://localhost:8088"}'
+
+### ksql
+
+{{< youtube k714Zw1bFVU >}}
+
+ksqDB の優れた点の一つは Kafka との密接な統合で、例えば、トピックをリストアップすることができます:
+
+    SHOW TOPICS
+
+SQL の構文は若干異なりますが、上記のようなテーブルを作成する方法の一つを紹介します:
+
+    CREATE STREAM user_behavior (
+      user_id BIGINT,
+      item_id BIGINT,
+      category_id BIGINT,
+      behavior STRING,
+      ts STRING
+    ) WITH (kafka_topic='user_behavior', value_format='json', partitions=1)
+
+
+そして、次のようにして中身をご覧ください:
+
+    SELECT *
+    FROM user_behavior
+    EMIT CHANGES
+    LIMIT 30
+
+
+Hue のエディタ内の別のステートメント、または SQL シェルを起動することにより
+
+    docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
+
+独自のレコードを挿入して、結果がライブで更新されるのに気づくこともできます。
+
+    INSERT INTO user_behavior (
+      user_id ,
+      item_id ,
+      category_id ,
+      behavior ,
+      ts
+    )
+    VALUES
+    (1, 10, 20, 'buy', '1602998392')
+
+
+
+&nbsp;
+
+次のエピソードでは、[importer](https://gethue.com/querying-exploring-the-instacart-dataset-part-1-ingesting-the-data/) を介して生のデータストリームから、簡単に直接テーブルを作成する方法をデモします。
+
+ご意見やご質問はありますか?お気軽にこちらにコメントしてください!
+
+これらのプロジェクトは全てオープンソースであり、フィードバックや貢献を歓迎します。HueEditorの場合は [Forum](https://discourse.gethue.com/) や [Github issues](https://github.com/cloudera/hue/issues) をご利用ください。
+
+
+その先へ!
+
+Romain

+ 168 - 0
docs/gethue/content/jp/posts/2020-11-17-querying-live-kafka-data-in-apache-hbase-with-phoenix.md

@@ -0,0 +1,168 @@
+---
+title: HBaseのようなビッグテーブルにあるライブのKafkaデータをSQLで簡単にクエリする
+author: Romain
+type: post
+date: 2020-11-17T00:00:00+00:00
+url: /blog/querying-live-kafka-data-in-apache-hbase-with-phoenix/
+sf_thumbnail_type:
+  - none
+sf_thumbnail_link_type:
+  - link_to_post
+sf_detail_type:
+  - none
+sf_page_title:
+  - 1
+sf_page_title_style:
+  - standard
+sf_no_breadcrumbs:
+  - 1
+sf_page_title_bg:
+  - none
+sf_page_title_text_style:
+  - light
+sf_background_image_size:
+  - cover
+sf_social_sharing:
+  - 1
+sf_related_articles:
+  - 1
+sf_sidebar_config:
+  - left-sidebar
+sf_left_sidebar:
+  - Sidebar-2
+sf_right_sidebar:
+  - Sidebar-1
+sf_caption_position:
+  - caption-right
+sf_remove_promo_bar:
+  - 1
+ampforwp-amp-on-off:
+  - default
+categories:
+  - Querying
+  - Tutorial
+  - Version 4.9
+
+---
+HBaseのようなビッグテーブルにあるライブのKafkaデータをSQLで簡単にクエリする
+
+*この記事は、当初 https://medium.com/data-querying/phoenix-brings-sql-to-hbase-and-let-you-query-kafka-data-streams-8fd2edda1401 で公開されました*
+
+[Apache HBase](https://hbase.apache.org/) はビッグテーブルファミリーの、大規模なキーバリューデータベースです。ランダムな読み書きに優れ、分散型です。Hue Query アシスタントは、組織内でのデータベース検索を容易にし、ユビキタスなものにすることを目的とした、汎用性の高いSQL を作成する Web アプリケーションです。
+
+この記事では、HBase に SQL インターフェイス層を提供する [Apache Phoenix](https://phoenix.apache.org/) 最近の統合をデモします。これにより、クエリを簡単に行うことができます。Hue は、既にネイティブアプリケーションを介したHBaseへのクエリをサポートしていますが、SQL の優れた点は、その人気(多くの人がSQLの基礎を知っている)と、Hue Editor の強力な能力を利用できることです。
+
+典型的なユースケースは、リアルタイムの分析やクエリを実行するために、メトリクス、トレース、ログなどのライブデータをインジェストすることです。ここでは、古典的な "Hello World " を用いてデモを行い、次にKafkaを使ったライブログのインジェストを行います。
+
+![Querying HBase via Phoenix SQL Editor](https://cdn.gethue.com/uploads/2020/11/peek-phoenix.gif)
+
+1クリックで自分でテストできるように、Docker compose 環境を開発しました。以下のサービスが含まれています。
+
+* HBase
+* Phoenix Query Server
+* Hue Query Assistant ([Phoenix connector](https://docs.gethue.com/administrator/configuration/connectors/#apache-phoenix) が付属しています)
+* Fluentd - Kafka に Hue のログをライブでインジェスとします
+* Python Ingester スクリプトは Kafka からログを消費(consume)してHBaseにプッシュします
+
+![HBase Phoenix Hue Architecture](https://cdn.gethue.com/uploads/2020/11/hue-phoenix-hbase-archi.png)
+
+次は Docker Composeの設定を取得して、すべてを起動するためのものです:
+
+    mkdir big-table-hbase
+    cd big-table-hbase
+    wget https://raw.githubusercontent.com/romainr/query-demo/master/big-table-hbase/docker-compose.yml
+
+
+    docker-compose up -d
+    >
+    Creating hue-database           ... done
+    Creating query-demo_zookeeper_1 ... done
+    Creating hbase-phoenix          ... done
+    Creating query-demo_fluentd_1   ... done
+    Creating query-demo_kafka_1     ... done
+    Creating hue                    ... done
+    Creating kafka2phoenix          ... done
+
+そうすると、これらの URL が利用できます:
+
+* http://localhost:8888/ Hue Editor
+* http://localhost:8765/ Phoenix Query Server
+
+全てを停止するには次のように行います:
+
+    docker-compose down
+
+## Hello World
+
+このケースでは、公式のチュートリアル ([Get started in 15 minutes tutorial](https://phoenix.apache.org/Phoenix-in-15-minutes-or-less.html)) に従うだけです。
+
+    CREATE TABLE IF NOT EXISTS us_population (
+      state CHAR(2) NOT NULL,
+      city VARCHAR NOT NULL,
+      population BIGINT
+      CONSTRAINT my_pk PRIMARY KEY (state, city)
+    );
+
+
+    UPSERT INTO us_population VALUES ('NY','New York',8143197);
+    UPSERT INTO us_population VALUES ('CA','Los Angeles',3844829);
+    UPSERT INTO us_population VALUES ('IL','Chicago',2842518);
+    UPSERT INTO us_population VALUES ('TX','Houston',2016582);
+    UPSERT INTO us_population VALUES ('PA','Philadelphia',1463281);
+    UPSERT INTO us_population VALUES ('AZ','Phoenix',1461575);
+    UPSERT INTO us_population VALUES ('TX','San Antonio',1256509);
+    UPSERT INTO us_population VALUES ('CA','San Diego',1255540);
+    UPSERT INTO us_population VALUES ('TX','Dallas',1213825);
+    UPSERT INTO us_population VALUES ('CA','San Jose',91233);
+
+
+    SELECT
+      state as "State",
+      count(city) as "City Count",
+      sum(population) as "Population Sum"
+    FROM
+      us_population
+    GROUP BY
+      state
+    ORDER BY
+      sum(population) DESC
+    ;
+
+![HBase Phoenix SQL Editor](https://cdn.gethue.com/uploads/2020/11/hue-editor-phoenix.png)
+
+## Kafka のデータのストリームをクエリする
+
+デモをより現実的なものにするために、Kafka トピックにインポートされたライブデータをクエリします。データは SQL Editor 自体のアクセスログで構成されています (つまり、Hue の使用状況のメタデータ分析を行っているのです ;)。実際には、これは顧客の注文、天気、株価、トラフィックデータなど、他の種類のデータであっても構いません。
+
+ものごとをシンプルに保つために、小さな ingester プログラムを使って、Kafka からデータを読み込んで HBase にプッシュすることで、クエリを実行してライブの結果を見ることができるようにしています。[Phoenix Kafka Consumer](https://phoenix.apache.org/kafka.html)、Apache Nifi、Apache Spark、Fluentd...など、本番環境でこれを実行するための多くのツールがあります。
+
+このケースでは、Kafka のトピック
+
+    hue_logs
+
+を、kafka-python モジュールで読み、Phoenix テーブルを作成したあとで [Phoenix Python](https://phoenix.apache.org/python.html) モジュールで UPSERT 文を送信して Kafka のレコードをテーブルに挿入しています。
+
+    CREATE TABLE hue_logs (
+      id CHAR(30) PRIMARY KEY,
+      message VARCHAR
+    )
+
+    UPSERT INTO hue_logs VALUES
+    (<timestamp of record + id>, <log message>)
+
+アーキテクチャの図では、ingester/Fluentd/Kafkaをソリューションに置き換えています。そして、HBase に格納されている Hue サービスの最新のアクセスログを見るためには、Phoenix テーブルの `hue_logs` に数回クエリを実行するだけです。
+
+    SELECT *
+    FROM hue_logs
+    ORDER BY id DESC
+    LIMIT 100
+
+これで完成です!
+
+コミュニティとPhoenix/HBase チームに感謝します。特に、[better SQL autocomplete](https://docs.gethue.com/developer/parsers/), [create table wizard](/querying-exploring-the-instacart-dataset-part-1-ingesting-the-data/) 用のコネクタ、いくつかの組み込みSQLの例など、多くの改善を行っているところです。
+
+試してみたい方は、demo.gethue.comからワンクリックでアクセスできます。
+
+その先へ!
+
+Romain

+ 179 - 0
docs/gethue/content/jp/posts/2020-12-31-querying-spark-sql-with-spark-thrift-server-and-hue-editor.md

@@ -0,0 +1,179 @@
+---
+title: Hue と Spark SQL Server を介したSpark SQL Editor 
+author: Romain
+type: post
+date: 2020-12-31T00:00:00+00:00
+url: /blog/querying-spark-sql-with-spark-thrift-server-and-hue-editor/
+sf_thumbnail_type:
+  - none
+sf_thumbnail_link_type:
+  - link_to_post
+sf_detail_type:
+  - none
+sf_page_title:
+  - 1
+sf_page_title_style:
+  - standard
+sf_no_breadcrumbs:
+  - 1
+sf_page_title_bg:
+  - none
+sf_page_title_text_style:
+  - light
+sf_background_image_size:
+  - cover
+sf_social_sharing:
+  - 1
+sf_related_articles:
+  - 1
+sf_sidebar_config:
+  - left-sidebar
+sf_left_sidebar:
+  - Sidebar-2
+sf_right_sidebar:
+  - Sidebar-1
+sf_caption_position:
+  - caption-right
+sf_remove_promo_bar:
+  - 1
+ampforwp-amp-on-off:
+  - default
+categories:
+  - Querying
+  - Tutorial
+  - Version 4.9
+
+---
+ウェブブラウザで Spark SQL を素早く記述、実行します。
+
+*この記事は、当初 https://medium.com/data-querying/a-sparksql-editor-via-hue-and-the-spark-sql-server-f82e72bbdfc7 で公開されました*
+
+[Apache Spark](https://spark.apache.org/) は データを扱う(wrangling)/準備するために、特にデータ操作プログラムを宣言的でシンプルに保つように、SQL スニペットを埋め込む場合に人気があります。
+
+一つの良いニュースは、SQL の構文が [Apache Hive](https://hive.apache.org/) に非常に似ているので、Hue の非常に強力な Hive の自動補完が非常にうまく機能するということです。
+
+![SparkSql Editor in action via both types of connection](https://cdn.gethue.com/uploads/2020/12/spark-sql-editor.gif)
+
+ここでは、すでにあなたのスタックで利用できるようになっているかもしれない [Spark SQL Thrift Server](https://spark.apache.org/docs/latest/sql-distributed-sql-engine.html) のインターフェイスと統合する方法を説明します。
+
+記事にはワンクリックデモのセットアップが付属しています。シナリオはかなりシンプルで、バッチクエリについては、より多くのライブデータのために特化したフォローアップのエピソードで紹介する予定です。
+
+![Two connectors possible for communicating with the SparkSql Thrift Server](https://cdn.gethue.com/uploads/2020/12/blog-spark-hue-archi.png)
+
+Docker Compose の[設定](https://raw.githubusercontent.com/romainr/query-demo/master/big-table-hbase/docker-compose.yml) をフェッチして全てを開始するためには次のように行います:
+
+    mkdir spark
+    cd spark
+    wget https://raw.githubusercontent.com/romainr/query-demo/master/spark/docker-compose.yml
+    docker-compose up -d
+    >
+    Creating network "spark_default" with the default driver
+    Creating hue-database ... done
+    Creating livy-spark   ... done
+    Creating spark-master ... done
+    Creating spark-sql    ... done
+    Creating hue          ... done
+
+その後、これらの URL が利用可能になります:
+
+* http://127.0.0.1:8080/ Spark Master Web UI
+* http://127.0.0.1:4040/environment/ Thrift SQL UI
+* http://127.0.0.1:7070 Spark Master
+* http://localhost:8998 Livy REST Server
+
+全てを停止するには次のようにします:
+
+    docker-compose down
+
+## Hello World
+
+いくつかの都市と住民数を表す SQL のテーブルを作成する方法:
+
+    CREATE TABLE IF NOT EXISTS us_population (
+      state CHAR(2),
+      city VARCHAR(20),
+      population BIGINT
+    )
+    ;
+
+
+    INSERT INTO us_population
+    VALUES
+    ('NY', 'New York', 8143197),
+    ('CA', 'Los Angeles', 3844829),
+    ('IL', 'Chicago', 2842518),
+    ('TX', 'Houston', 2016582),
+    ('PA', 'Philadelphia', 1463281),
+    ('AZ', 'Phoenix', 1461575),
+    ('TX', 'San Antonio', 1256509),
+    ('CA', 'San Diego', 1255540),
+    ('TX', 'Dallas', 1213825),
+    ('CA', 'San Jose', 91233)
+    ;
+
+
+    SELECT
+      state as State,
+      count(city) as CityCount,
+      sum(population) as PopulationSum
+    FROM
+      us_population
+    GROUP BY
+      state
+    ORDER BY
+      sum(population) DESC
+    ;
+
+## Spark SQL Server と接続するためのインターフェースは?
+
+以前、[Hue 経由で Spark SQL](https://medium.com/data-querying/an-sql-editor-for-apache-spark-sql-with-livy-534c56f7d251) を送るために Apache Livy を利用する方法をデモしました。その際にも詳しく説明しましたが、Livy は当初 Hue プロジェクト内で作成されたもので、PySpark / Scala Spark /SparkSql ステートメントをインタラクティブに、またはバッチで軽量に送信することができます。
+
+しかし、Spark に搭載されている [Distributed SQL Engine](https://spark.apache.org/docs/latest/sql-distributed-sql-engine.html) (別名 "Thrift Server "として知られています)よりも公式なものではないように見えるかもしれないという欠点があります。
+
+Hue は2つのインターフェースを介してSpark SQL Thrift Serverに接続することができます:
+
+- SqlAlchemy:  [universal Python](https://www.sqlalchemy.org/) ライブラリをベースにした[コネクタ](https://github.com/dropbox/PyHive)
+- HiveServer2: Hue の Hive 用のネイティブなコネクタ
+
+長い話を短くまとめると、SqlAlchemy の主な利点は、より多くの SparkSql の問題を解決できることですが、クエリは同期的に送信されます (つまり、Hue [Task Server](https://docs.gethue.com/administrator/administration/reference/#task-server) が設定されていない限り、数秒以上のクエリは進捗報告がなく、長いクエリはタイムアウトします)。
+
+そのため、SqlAlchemy を使い始めることをお勧めしますが、よりネイティブ/高度な HiveServer2 API で小さな修正を[報告/貢献](https://github.com/cloudera/hue/pulls)することをお勧めします。
+
+注: SqlAlchemyのインターフェースは Hive コネクタを必要としますが、これは [#150](https://github.com/dropbox/PyHive/issues/150) の問題のため、そのままでは動作しません。しかし、Hueに同梱され、わずかにパッチを当てたモジュールが動作することを示しています: https://github.com/gethue/PyHive
+
+
+![Spark SQL Editor](https://cdn.gethue.com/uploads/2020/12/spark-sql-editor.png)
+
+## 設定
+
+hue.ini でコネクタを設定し、[ドキュメント](https://docs.gethue.com/administrator/configuration/connectors/#apache-spark-sql)にあるように PyHive コネクタがインストールされていることを確認します。
+
+    [notebook]
+    [[interpreters]]
+
+    [[[sparksql-alchemy]]]
+    name=SparkSql (via SqlAlchemy)
+    interface=sqlalchemy
+    options='{"url": "hive://localhost:10000/default"}'
+
+    [[[sparksql]]]
+    # Must be named 'sparksql', hostname and more options are
+    # in the 'spark' section
+    name=SparkSql (via HiveServer2)
+    interface=hiveserver2
+
+
+    [spark]
+    sql_server_host=localhost
+    sql_server_port=10000
+
+
+## 次回は何でしょうか?
+
+これで完成です!
+
+次回は SparkSQL の組み込み筋ペットを簡単に編集し素早くテストできる Hue の [SQL Scratchpad](https://docs.gethue.com/developer/components/parsers/) コンポーネントの進捗状況や、[ライブでーたをクエリする](https://gethue.com/blog/tutorial-query-live-data-stream-with-flink-sql/)方法について説明します。
+
+その先へ!
+
+Romain