すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:OSS データソースの関連付け

最終更新日:Jun 23, 2026

このトピックでは、外部テーブルを作成して Simple Log Service (SLS) と Object Storage Service (OSS) を関連付ける方法について説明します。

前提条件

  • ログが収集済みであること。詳細については、「データ収集」をご参照ください。

  • インデックスが有効化され、設定済みであること。詳細については、「インデックスの作成」をご参照ください。

  • OSS バケットが作成済みであること。詳細については、「バケットの作成」をご参照ください。

  • CSV ファイルが OSS バケットにアップロード済みであること。詳細については、「ファイルのアップロード」をご参照ください。

    重要

    複数の OSS ファイルを関連付けることができます。単一ファイルの最大サイズは 50 MB です。圧縮はサポートされていません。パラメーターに正規表現はサポートされていません。

メリット

Object Storage Service (OSS) のデータに対するフェデレーテッドクエリには、次のメリットがあります。

  • コスト削減:更新頻度の低いデータを OSS に保存することで、ストレージコストを最小限に抑えることができます。また、内部ネットワーク経由でデータを読み取ることで、データ転送料金を回避できます。

  • 運用ワークロードの削減:データを単一のストレージシステムに移行することなく、軽量なフェデレーテッド分析プラットフォームを使用できます。

  • 時間の節約:SQL を使用してデータを分析し、数秒で結果を取得できます。頻繁に使用するクエリをレポートとして保存し、結果に直接アクセスすることも可能です。

操作手順

  1. Simple Log Service コンソールにログインします。

  2. [プロジェクト] セクションで、目的のプロジェクトをクリックします。

    image

  3. [ログストレージ] > [Logstore] タブで、目的の Logstore をクリックします。

    image

  4. クエリ文を入力し、[検索と分析] をクリックします。

    SQL ステートメントを使用して、OSS ファイルにマッピングする仮想外部テーブルを定義します。

    * | create table <foreign table> (<Schema>) with (endpoint='oss-cn-${your_region_name}-internal.aliyuncs.com',accessid='yourAccessKeyID',accesskey ='yourAccessKeySecret',bucket='<your bucket name>',objects=ARRAY['my.csv'],type='oss')

    クエリ文で、外部テーブル名、テーブルスキーマ、およびその他のパラメーターを定義します。WITH 句を使用して、OSS のアクセス情報とファイル情報を指定します。次の表にパラメーターを示します。

    パラメーター

    説明

    外部テーブル名

    仮想外部テーブルの名前。

    user_meta1

    テーブルスキーマ

    テーブルの列名とデータ型。

    (userid bigint, nick varchar, gender varchar, province varchar, age bigint)

    エンドポイント

    OSS にアクセスするためのエンドポイント。詳細については、「リージョンとエンドポイント」をご参照ください。

    重要

    内部ネットワークのエンドポイントを使用する必要があります。パブリックエンドポイントはサポートされていません。

    oss-cn-hangzhou-internal.aliyuncs.com

    Accessid

    Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret。OSS データソースへのアクセス権限を持つ RAM ユーザーの AccessKey ペアを使用することを推奨します。RAM ユーザーに権限を付与する方法の詳細については、「RAM ユーザーへの権限付与」をご参照ください。AccessKey ペアの取得方法の詳細については、「AccessKey ペア」をご参照ください。

    LTAI****************

    Accesskey

    yourAccessKeySecret

    Bucket

    CSV ファイルが保存されている OSS バケットの名前。

    examplebucket

    Objects

    クエリ対象の CSV ファイルまたは OSS ディレクトリ。objects パラメーターは、複数のファイルまたはディレクトリを含むことができる配列です。次の点にご注意ください。

    • ディレクトリを指定する場合、名前の末尾にスラッシュ (/) を付ける必要があります。たとえば、test_dir/ と指定すると、外部テーブルは指定されたバケットの test_dir/ ディレクトリ内のすべての CSV ファイルに関連付けられます。

    • 制限事項:ファイルの総数は 100 を超えることはできません。

    • 'user.csv'

    • 'test_dir/'

    • 'user.csv','test_dir/','my_dir/'

    Type

    外部データソースのタイプ。値は oss である必要があります。

    oss

    コマンドの例:

    * | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, age bigint) with ( endpoint='oss-cn-hangzhou-internal.aliyuncs.com',accessid='yourAccessKeyID',accesskey='yourAccessKeySecret',bucket='examplebucket',objects=ARRAY['my.csv'],type='oss')

    出力の result フィールドの値が true の場合、ステートメントは正常に実行されたことを示します。

  5. 外部テーブルが作成されたことを確認します。

    次のステートメントを実行します。ここで、<外部テーブル> は、手順 4 で定義した外部テーブル名です。以前に定義したテーブルの内容がコマンドから返された場合、外部テーブルは正常に定義されています。

    * | select * from <foreign table>
  6. JOIN 句を使用して、SLS と OSS のデータに対してフェデレーテッドクエリを実行します。

    たとえば、次のクエリを実行して、ログの userid と OSS ファイルの userid を結合し、ログデータをエンリッチします。

    説明

    収集されたログには userid フィールドが含まれている必要があります。

    * | select * from <logstore> l join <foreign table> u on l.userid = u.userid

    パラメーター

    説明

    Logstore

    クエリ対象の Logstore の名前。

    test_logstore

    外部テーブル名

    手順 4 で定義した外部テーブルの名前。

    user_meta1

    フェデレーテッドクエリを実行すると、結果にはログフィールド (actionbloodmagicmoneynetworkpaymentstatususeragent など) と外部テーブルのユーザー属性フィールド (nickgenderprovinceage など) の両方が含まれます。これは、userid で結合することによってログデータが正常にエンリッチされたことを示します。

ベストプラクティスの例については、「Logstore と OSS 外部テーブルを関連付けてデータをクエリおよび分析する」をご参照ください。