tencent cloud

Cloud Log Service

ドキュメントCloud Log Serviceユースケース配信と消費DLC(Hive)を使用したCLSログの分析

DLC(Hive)を使用したCLSログの分析

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 15:06:44
AI翻訳

概要

CLS内のログをHiveに配信してOLAP計算を行う必要がある場合は、本文を参照して実践できます。Tencent Cloud DLC(Data Lake Compute、DLC)が提供するデータ分析・計算サービスを通じて、ログのオフライン計算と分析を完了できます。 

操作手順

CLSログのCOSへの配信

配信タスクの作成

1. CLSコンソールにログインし、左側のナビゲーションバーで配信消費 > COSへ配信を選択します。
2. COSへ配信ページで配信設定を追加をクリックし、表示される「COSへ配信」ウィンドウで配信タスクを設定して作成します。 以下の設定項目に注意が必要です:
設定項目
注意事項
COSバケット
ログファイルはオブジェクトストレージバケットのこのディレクトリに配信されます。データウェアハウスモデルでは、通常 Table Location のアドレスに対応します。
COSパス
Hiveパーティションテーブル形式に従って指定します。例えば、日次パーティションは /dt=%Y%m%d/test に設定できます。ここで、dt= はパーティションフィールドを表し、%Y%m%d は年月日を表し、test はログファイルのプレフィックスを表します。
ファイル命名
配信時間による命名です。
配信間隔時間
5~15分の範囲で選択できます。15分、250MBを選択することをお勧めします。これにより、ファイル数が少なくなり、クエリ性能が向上します。
配信形式
JSON 形式です。
3. 次へをクリックし、詳細設定に進み、JSONと処理するフィールドを選択します。

配信タスク結果の確認

通常、配信タスクを開始してから15分後に、COS(オブジェクトストレージ)コンソールでログデータを確認できます。ディレクトリ構造は以下の図のようになり、パーティションディレクトリの下に具体的なログファイルが含まれます。


COSコンソールのログデータは以下の図の通りです:



DLC(Hive)分析

DLCで外部テーブルを作成しCOSログディレクトリにマッピングする

ログデータをCOSに配信した後、DLCコンソール → データ探索機能から外部テーブルを作成できます。テーブル作成ステートメントは以下のSQL例を参照してください。パーティションフィールドとLocationフィールドがディレクトリ構造と一致するように特に注意してください。
DLCの外部テーブル作成ウィザードは詳細オプションを提供し、データファイルのテーブル構造を推測してSQLを自動かつ迅速に生成するのに役立ちます。これはサンプリングによる推測であるため、SQLに基づいてテーブルフィールドが適切かどうかをさらに判断する必要があります。例えば以下のケースでは、TIMESTAMPフィールドはintと推測されますが、bigintでなければ十分でない可能性があります。
CREATE EXTERNAL TABLE IF NOT EXISTS `DataLakeCatalog`.`test`.`log_data` (
`__FILENAME__` string,
`__SOURCE__` string,
`__TIMESTAMP__` bigint,
`appId` string,
`caller` string,
`consumeTime` string,
`data` string,
`datacontenttype` string,
`deliveryStatus` string,
`errorResponse` string,
`eventRuleId` string,
`eventbusId` string,
`eventbusType` string,
`id` string,
`logTime` string,
`region` string,
`requestId` string,
`retryNum` string,
`source` string,
`sourceType` string,
`specversion` string,
`status` string,
`subject` string,
`tags` string,
`targetId` string,
`targetSource` string,
`time` string,
`type` string,
`uin` string
) PARTITIONED BY (`dt` string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS TEXTFILE LOCATION 'cosn://coreywei-1253240642/log_data/'
パーティションごとに配信する場合、Locationはcosn://coreywei-1253240642/log_data/ディレクトリを指す必要があります。cosn://coreywei-1253240642/log_data/20220423/ディレクトリではありません。
推測機能を使用する場合は、ディレクトリをデータファイルが存在するサブディレクトリ、つまりcosn://coreywei-1253240642/log_data/20220423/ディレクトリに指定する必要があります。推測が完了したら、SQL内のLocationを cosn://coreywei-1253240642/log_data/ディレクトリに戻してください。
適切なパーティション分割はパフォーマンスを向上させますが、パーティションの総数は1万を超えないことを推奨します。

パーティションの追加

パーティションテーブルは、パーティションデータを追加した後でのみ、select文でデータを取得できます。パーティションは次の2つの方法で追加できます:
履歴パーティションの追加
増分パーティションの追加
この方法はすべてのパーティションデータを一度に読み込むことができ、実行速度は遅くなりますが、初回に多くのパーティションを読み込むシーンに適しています。
msck repair table DataLakeCatalog.test.log_data;
履歴パーティションを読み込んだ後も、増分パーティションは定期的に増加します。例えば、毎日1つのパーティションが新たに追加される場合は、この方法で増分追加を行うことができます。
alter table DataLakeCatalog.test.log_data add partition(dt='20220424')

データ分析

パーティションを追加した後、DLCを通じてデータ開発または分析を行うことができます。
select dt,count(1) from `DataLakeCatalog`.`test`.`log_data` group by dt;
結果は以下の図に示す通りです:



ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック