ホームページ >Java >&#&チュートリアル >Java を使用して、Apache Druid に基づいたリアルタイム分析およびクエリ アプリケーションを開発する方法

Java を使用して、Apache Druid に基づいたリアルタイム分析およびクエリ アプリケーションを開発する方法

WBOY
WBOYオリジナル
2023-09-22 08:51:13733ブラウズ

如何使用Java开发一个基于Apache Druid的实时分析和查询应用

Java を使用して Apache Druid に基づくリアルタイム分析およびクエリ アプリケーションを開発する方法

はじめに:
Apache Druid は、オープン ソースのリアルタイム アプリケーションです。データ処理およびクエリ エンジン。高いパフォーマンス、拡張性、信頼性を備えており、リアルタイム分析およびクエリ アプリケーションの構築に適しています。この記事では、Java 言語を使用して Apache Druid に基づくリアルタイム分析およびクエリ アプリケーションを開発する方法を紹介し、具体的なコード例を示します。

1. Apache Druid 環境をセットアップする
最初に、Apache Druid 環境をセットアップする必要があります。具体的な手順は次のとおりです。

  1. Apache Druid インストール パッケージをダウンロードして解凍します。
  2. JAVA_HOME や DRUID_HOME などの Druid の環境変数を構成します。
  3. Zookeeper サービスを開始します。
  4. ブローカー、コーディネーター、オーバーロード、および歴史ノードを含むドルイド サービスを開始します。

2. Druid データ ソースの作成
次に、Druid データ ソースを作成し、データを Druid にインポートする必要があります。具体的な手順は次のとおりです。

  1. タイムスタンプ、ディメンション、メジャー フィールドなどの必要なフィールドを含むデータ ソースを作成します。
  2. Java コードを使用して Druid のコーディネーター ノードに接続し、データ ソースを作成します。
  3. Java コードを使用して、Druid のデータ ソースにデータをインポートします。具体的なコード例は次のとおりです:
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("root");
dataSource.setPassword("password");

String jsonPath = "path/to/data.json";
String dataSourceName = "myDataSource";

File jsonFile = new File(jsonPath);
InputStream inputStream = new FileInputStream(jsonFile);
InputStreamReader reader = new InputStreamReader(inputStream);

String data = IOUtils.toString(reader);
String jsonPayload = String.format(data, dataSourceName);

HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:8081/druid/coordinator/v1/metadata/datasources").openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);

OutputStream outputStream = connection.getOutputStream();
outputStream.write(jsonPayload.getBytes());
outputStream.close();

int responseCode = connection.getResponseCode();
if (responseCode == 200) {
    System.out.println("Data source created successfully.");
}

3. Druid クエリ コードを作成する
データ ソースが正常に作成され、データのインポートが完了したら、Druid クエリ コードを作成できます。具体的な手順は次のとおりです。

  1. Java コードを使用して、Druid の Broker ノードに接続します。
  2. Druid クエリ リクエストを作成し、Druid クラスターに送信します。具体的なコード例は次のとおりです:
DruidQueryRequest queryRequest = new DruidQueryRequest();
queryRequest.setDataSource("myDataSource");
queryRequest.setGranularity("hour");
queryRequest.setIntervals("2022-01-01T00:00:00Z/2022-01-02T00:00:00Z");

DruidAggregation aggregation = new DruidAggregation();
aggregation.setType("longSum");
aggregation.setName("totalClicks");
aggregation.setFieldName("clicks");

queryRequest.setAggregations(Collections.singletonList(aggregation));

URL url = new URL("http://localhost:8082/druid/v2");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);

Gson gson = new Gson();
String jsonPayload = gson.toJson(queryRequest);

OutputStream outputStream = connection.getOutputStream();
outputStream.write(jsonPayload.getBytes());
outputStream.close();

int responseCode = connection.getResponseCode();
if (responseCode == 200) {
    InputStream inputStream = connection.getInputStream();
    InputStreamReader reader = new InputStreamReader(inputStream);
    String result = IOUtils.toString(reader);
    System.out.println(result);
}

4. クエリ結果の表示
最後に、クエリ結果を表示または処理する必要があります。具体的なコード例は次のとおりです。

JsonParser parser = new JsonParser();
JsonObject jsonObject = parser.parse(result).getAsJsonObject();
JsonArray events = jsonObject.getAsJsonArray("events");

for (JsonElement event : events) {
    JsonObject eventObject = event.getAsJsonObject();
    String timestamp = eventObject.get("__time").getAsString();
    long clicks = eventObject.get("totalClicks").getAsLong();

    System.out.println("Timestamp: " + timestamp);
    System.out.println("Total Clicks: " + clicks);
}

結論:
この記事では、Java 言語を使用して、Apache Druid に基づくリアルタイム分析およびクエリ アプリケーションを開発する方法を紹介します。これには、Druid 環境の構築、 Druid データ ソース、および Druid クエリ コードの記述とクエリ結果の表示。これらの手順を通じて、データ分析と意思決定を迅速に実行できる強力なリアルタイム分析およびクエリ アプリケーションを簡単に構築できます。

参考資料:

  1. Apache Druid 公式ドキュメント: https://druid.apache.org/
  2. GitHub の Druid サンプルコード: https:// github .com/apache/druid/tree/master/examples/quickstart

以上がJava を使用して、Apache Druid に基づいたリアルタイム分析およびクエリ アプリケーションを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。