LOG Indexing Service は、E-MapReduce によって起動された Druid プラグインであり、Log Service からのデータを消費するために使用されます。

バックグランド

LOG Indexing Service は、Kafka Indexing Service と同様の方法でデータを消費し、1 回限りのセマンティクスをサポートします。 LOG Indexing Service には、Log Service と Kafka Indexing Service の両方の利点があります。
  • Log Service にデータを収集するためのさまざまな便利な方法を提供しています。
  • Kafka クラスターが不要になり、データフローのパスが短縮されます。
  • 1 回限りのセマンティクスをサポートしています。
  • 失敗したジョブを再試行してデータ消費の信頼性を確保し、サービスを中断することなくクラスターの再起動とサービスの更新を可能にします。

準備

  • LOG をアクティブにし、プロジェクトとログストアを設定したことをご確認ください。
  • 次の設定項目を準備します。
    • LOG のエンドポイントです。 イントラネットエンドポイントを使用します。
    • LOG にアクセスするための AccessKey ID と AccessKey シークレットのペアです。

LOG Indexing Service の使用

  1. 取り込み仕様を準備します。
    LOG Indexing Service は、Kafka Indexing Service に似ています。 詳細については、「Kafka Indexing Service」をご参照ください。 同じデータにインデックスが付けられます。 データソースの取り込み仕様は次のとおりで、metrics-sls.json として保存されます。
    {
        "type": "sls",
        "dataSchema": {
            "dataSource": "metrics-sls",
            "parser": {
                "type": "string",
                "parseSpec": {
                    "timestampSpec": {
                        "column": "time",
                        "format": "auto"
                    },
                    "dimensionsSpec": {
                        "dimensions": ["url", "user"]
                    },
                    "format": "json"
                }
            },
            "granularitySpec": {
                "type": "uniform",
                "segmentGranularity": "hour",
                "queryGranularity": "none"
            },
            "metricsSpec": [{
                    "type": "count",
                    "name": "views"
                },
                {
                    "name": "latencyMs",
                    "type": "doubleSum",
                    "fieldName": "latencyMs"
                }
            ]
        },
        "ioConfig": {
            "project": <your_project>,
            "logstore": <your_logstore>,
            "consumerProperties": {
                "endpoint": "cn-hangzhou-intranet.log.aliyuncs.com", (In this example, the China (Hangzhou) region is used. Use the intranet endpoint.)
                accessKeyId: "<your-access-key-id>",
                "access-key-secret": <your_access_key_secret>,
                "logtail.collection-mode": "simple"/"other"
            },
            "taskCount": 1,
            "replicas": 1,
            "taskDuration": "PT1H"
        },
        "tuningConfig": {
            "type": "sls",
            "maxRowsInMemory": "100000"
        }
    }
    Kafka Indexing Service と LOG Indexing Service の取り込み仕様は似ています。 次のフィールドにご注意ください。
    • タイプ: sls です。
    • dataSchema.parser.parseSpec.format: ioConfig.consumerProperties.logtail.collection-mode (Log Service のログ収集モード) に依存します。 シンプルモードを選択した場合は、ソースファイルフォーマットを入力します。 シンプルモードを選択しない場合は、json と入力します。
    • ioConfig.project: 収集するログのプロジェクトです。
    • ioConfig.logstore: 収集するログのログストアです。
    • ioConfig.consumerProperties.endpoint: LOG のイントラネットエンドポイントです。 たとえば、中国 (杭州) リージョンのエンドポイントは cn-hangzhou-intranet.log.aliyuncs.com です。
    • ioConfig.consumerProperties.access-key-id: アカウントの AccessKey ID です。
    • ioConfig.consumerProperties.access-key-secret: アカウントの AccessKey Secret です。
    • ioConfig.consumerProperties.logtail.collection-mode: Log Service のログ収集モードです。 シンプルモードを選択した場合は、simple と入力します。 それ以外の場合は、other と入力します。
  2. 次のコマンドを実行して、LOG スーパーバイザーを追加します。
    curl --negotiate -u:druid -b ~/cookies -c ~/cookies -XPOST -H 'Content-Type: application/json' -d @metrics-sls.json http://emr-header-1.cluster-1234:18090/druid/indexer/v1/supervisor
    重要 安全な Druid クラスターには、-negotiate、-u、-b、および -c オプションが必須です。
  3. LOG にデータをインポートする

    複数の方法を使用して、LOG にデータをインポートすることができます。 詳細については、「Log Service」をご参照ください。

  4. Druid を使用してクエリを実行します。