【问题标题】:how to automate druid batch ingestion job?如何自动化德鲁伊批量摄取工作?
【发布时间】:2022-03-25 03:08:21
【问题描述】:

我正在 EMR 集群上设置 Druid,并使用 Batch Ingestion 成功地从 gcs 存储桶中提取 parquet 文件。

现在,我想自动化这个摄取过程,以便每天为具有相同配置的不同文件(在同一个 s3 存储桶中)运行。这可能吗?还是我需要每天手动进行。

【问题讨论】:

    标签: druid


    【解决方案1】:

    无法在 druid 中创建每天安排的工作。但是,您可以创建任务并使用(例如)cronjob 每天提交。

    向 druid 发送查询只不过是执行 HTTP 请求。因此,如果您确保文件每天都位于同一位置,您应该能够非常轻松地自动执行此操作。

    curl -X 'POST' -H 'Content-Type:application/json' -d @/path/to/your/task.json https://url-to-druid.com/druid/indexer/v1/task
    

    【讨论】:

      【解决方案2】:

      摄取的工作示例。

      在 php 文件中添加以下内容并安排文件每 X 小时调用一次文件

      <?php
          $curl = curl_init();
      
          curl_setopt_array($curl, array(
              CURLOPT_URL => 'https://<druid_public_url>/druid/indexer/v1/task',
              CURLOPT_RETURNTRANSFER => true,
              CURLOPT_ENCODING => '',
              CURLOPT_MAXREDIRS => 10,
              CURLOPT_TIMEOUT => 0,
              CURLOPT_FOLLOWLOCATION => true,
              CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
              CURLOPT_CUSTOMREQUEST => 'POST',
              CURLOPT_POSTFIELDS =>file_get_contents($json_file_path),
              CURLOPT_HTTPHEADER => array(
                 'Content-Type: application/json'
              ),
          ));
      
          $response = curl_exec($curl);
      
          curl_close($curl);
          echo $response;
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-01
        • 1970-01-01
        • 2023-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多