>  기사  >  Java  >  Java를 사용하여 Apache Druid 기반 실시간 분석 및 쿼리 애플리케이션을 개발하는 방법

Java를 사용하여 Apache Druid 기반 실시간 분석 및 쿼리 애플리케이션을 개발하는 방법

WBOY
WBOY원래의
2023-09-22 08:51:13708검색

如何使用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. 주키퍼 서비스를 시작하세요.
  4. 브로커, 코디네이터, 오버로드 및 히스토리컬 노드를 포함한 드루이드 서비스를 시작하세요.

2. Druid 데이터 소스 생성
다음으로 Druid 데이터 소스를 생성하고 해당 데이터를 Druid로 가져와야 합니다. 구체적인 단계는 다음과 같습니다.

  1. 타임스탬프, 차원 및 측정값 필드와 같은 필수 필드가 포함된 데이터 소스를 만듭니다.
  2. Java 코드를 사용하여 Druid의 Coordinator 노드에 연결하고 데이터 소스를 생성합니다.
  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);
}

결론:
이 글에서는 Druid 환경 설정, Druid 데이터 소스 생성, 작성 등 Java 언어를 사용하여 Apache 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.