Druid翻訳4:バッチ・データ・チュートリアルのロード

6428 ワード

はじめに
このチュートリアルでは、データファイルをDruidにロードする方法について説明します.
このチュートリアルでは、クイックスタートの説明に従ってDruidをダウンロードし、ホスト上で実行したとします.事前にデータをロードする必要はありません.
上記の手順が完了すると、カスタム抽出仕様を作成することで、独自のデータセットをロードできます.
抽出仕様の作成
Druidバッチ・ロード・プロセスを使用して、ファイル・データをDruidにロードできます.quickstart/wikiticker-index.jsonには、必要に応じて自分で修正できるバッチ抽出仕様の例があります.最も重要な問題は次のとおりです.
{
  "type" : "index_hadoop",
  "spec" : {
    "ioConfig" : {
      "type" : "hadoop",
      "inputSpec" : {
        "type" : "static",
        //2.     ,          
        "paths" : "quickstart/wikiticker-2015-09-12-sampled.json"
      }
    },
    "dataSchema" : {
      //1.         
      "dataSource" : "wikiticker",
      "granularitySpec" : {
        "type" : "uniform",
        "segmentGranularity" : "day",
        "queryGranularity" : "none",
        //6.            
        "intervals" : ["2015-09-12/2015-09-13"]
      },
      "parser" : {
        "type" : "hadoopyString",
        "parseSpec" : {
          "format" : "json",
          "dimensionsSpec" : {
            //4.         
            "dimensions" : [
              "channel",
              "cityName",
              "comment",
              "countryIsoCode",
              "countryName",
              "isAnonymous",
              "isMinor",
              "isNew",
              "isRobot",
              "isUnpatrolled",
              "metroCode",
              "namespace",
              "page",
              "regionIsoCode",
              "regionName",
              "user"
            ]
          },
          "timestampSpec" : {
            "format" : "auto",
            //3.           
            "column" : "time"
          }
        }
      },
      //5.        
      "metricsSpec" : [
        {
          "name" : "count",
          "type" : "count"
        },
        {
          "name" : "added",
          "type" : "longSum",
          "fieldName" : "added"
        },
        {
          "name" : "deleted",
          "type" : "longSum",
          "fieldName" : "deleted"
        },
        {
          "name" : "delta",
          "type" : "longSum",
          "fieldName" : "delta"
        },
        {
          "name" : "user_unique",
          "type" : "hyperUnique",
          "fieldName" : "user"
        }
      ]
    },
    "tuningConfig" : {
      "type" : "hadoop",
      "partitionsSpec" : {
        "type" : "hashed",
        "targetPartitionSize" : 5000000
      },
      "jobProperties" : {}
    }
  }
}

データに時間が記録されていない場合は、現在の時間で各ローのデータをマークするか、「2000-01-01 T 00:00:00.000 Z」などのすべてのローを固定タイムスタンプでマークすることもできます.ウェブブラウズデータセットを例にとると、DruidはTSV、CSV、JSONをサポートし、開梱して使用します.DruidではネストされたJSONオブジェクトはサポートされていませんので、JSONを使用する場合は、平面オブジェクトを含むファイルを指定する必要があります.
{"time": "2015-09-01T00:00:00Z", "url": "/foo/bar", "user": "alice", "latencyMs": 32}
{"time": "2015-09-01T01:00:00Z", "url": "/", "user": "bob", "latencyMs": 11}
{"time": "2015-09-01T01:30:00Z", "url": "/foo/bar", "user": "bob", "latencyMs": 45}

ファイルの最後に改行がないことを確認します.このファイルをpageviews.jsonという名前のファイルに保存すると、このデータセットについて次のようになります.
  • データセットは「pageviews」
  • と呼ばれています.
  • データは「pageviews.json」の
  • にあります.
  • タイムスタンプは「time」フィールド
  • です.
  • 「url」および「user」フィールドは、データ次元
  • として適している.
  • ページのアクセス量(count統計)と総消費時間(sum(latencyMs))は良い指標であり、データをロードするときにこれらの統計値を収集すると、クエリー時に平均値を簡単に計算することができます.
  • データの範囲は、2015-09-01(含む)から2015-09-02(含まない)までです.

  • 既存のインデックスファイルquickstart/wikiticker-indexを使用できます.json、copyから新しいファイルへ.
    cp quickstart/wikiticker-index.json my-index-task.json
    

    次に、これらのセクションを変更して変更します.
    "dataSource": "pageviews"
    "inputSpec": {
      "type": "static",
      "paths": "pageviews.json"
    }
    
    "timestampSpec": {
      "format": "auto",
      "column": "time"
    }
    
    "dimensionsSpec": {
      "dimensions": ["url", "user"]
    }
    
    "metricsSpec": [
      {"name": "views", "type": "count"},
      {"name": "latencyMs", "type": "doubleSum", "fieldName": "latencyMs"}
    ]
    
    "granularitySpec": {
      "type": "uniform",
      "segmentGranularity": "day",
      "queryGranularity": "none",
      "intervals": ["2015-09-01/2015-09-02"]
    }
    

    タスクの実行
    このタスクを実行するには、インデックスタスクがpageviewsを読み取ることができることを確認します.json:もしあなたが本機で実行している場合(hadoopへの接続が構成されていない場合、これもDruidのデフォルト値です)、pageviews.jsonはDruidのルートディレクトリの下に置かれます.Druidがhadoopクラスタ接続を構成する場合、pageviews.jsonはHDFSにアップロードします.上の抽出仕様の構成パスを調整します.Druid Overlordにあなたのインデックスタスクを提出すると、インデックスを開始することができます.標準Druidインストールでは、URLはhttp://OVERLORD_IP:8090/druid/indexer/v1/task .
    curl -X 'POST' -H 'Content-Type:application/json' -d @my-index-task.json OVERLORD_IP:8090/druid/indexer/v1/task
    

    すべてのものが本機で稼働している場合はlocalhostを使用できます
    curl -X 'POST' -H 'Content-Type:application/json' -d @my-index-task.json localhost:8090/druid/indexer/v1/task
    

    このタスクでエラー(ステータスがFAILEDなど)が発生した場合は、overlordコンソールのTask logでトラブルシューティングできます(http://www.localhost/console.html).
    データ照会
    データはCoordinatorコンソールで1~2分で完全に使用できるはずです.http://localhost:8081/#/進捗を監視できます.データが完全に使用可能になると、サポートされているクエリー・メソッドを使用してデータをクエリーできます.
    深く読む
    バッチ・ロード・データの詳細については、バッチ・データ抽出の章を参照してください.
    テキストリンク:http://druid.io/docs/0.9.2/tutorials/tutorial-batch.html