このトピックでは、外部テーブルを作成して Simple Log Service を OSS データソースに関連付ける方法について説明します。
前提条件
ログが収集済みであること。 詳細については、「データ収集」をご参照ください。
インデックスを有効にして設定済みであること。 詳細については、「インデックスの作成」をご参照ください。
OSS バケットが作成済みであること。 詳細については、「コンソールでのバケットの作成」をご参照ください。
CSV フォーマットのファイルが OSS バケットにアップロード済みであること。 詳細については、「コンソールでのファイルのアップロード」をご参照ください。
重要複数の OSS ファイルを関連付けることができます。 1 つのファイルの最大サイズは 50 MB です。 圧縮はサポートされていません。 パラメーターに正規表現はサポートされていません。
メリット
OSS データソースに関連付けてデータをクエリおよび分析すると、次のメリットがあります。
コスト削減: アクセス頻度の低いデータを OSS に保存できます。 低コストのストレージに対してのみ料金を支払い、内部ネットワーク経由でデータを読み取ることでデータ転送料金を回避できます。
O&M ワークロードの削減: データを単一のストレージシステムに移動することなく、軽量のフェデレーテッド分析プラットフォームを使用できます。
時間の節約: SQL を使用してデータを分析し、数秒で結果を表示できます。 よく使用する分析クエリをレポートとして保存して、結果を直接表示することもできます。
手順
Simple Log Service コンソールにログインします。
Projects セクションで、目的のプロジェクトをクリックします。

タブで、目的の Logstore をクリックします。

クエリと分析文を入力し、[クエリ/分析] をクリックします。
SQL 文を使用して仮想外部テーブルを定義し、OSS ファイルにマッピングします。
* | create table <External storage> (<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)
endpoint
OSS エンドポイント。 詳細については、「リージョンとエンドポイント」をご参照ください。
重要内部エンドポイントを使用してください。 パブリックエンドポイントはサポートされていません。
oss-cn-hangzhou-internal.aliyuncs.com
accessid
Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret。 OSS データソースへのアクセス権限を持つ Resource Access Management (RAM) ユーザーの AccessKey ペアを使用します。 RAM ユーザーに権限を付与する方法の詳細については、「RAM ユーザーへの権限付与」をご参照ください。 AccessKey ペアの取得方法の詳細については、「AccessKey ペア」をご参照ください。
LTAI****************
accesskey
yourAccessKeySecret
bucket
CSV ファイルが保存されている OSS バケットの名前。
examplebucket
objects
CSV ファイルと OSS フォルダをサポートします。 objects パラメーターは、複数のファイルまたはフォルダを含むことができる配列です。 注意:
フォルダを指定する場合、名前はスラッシュ (/) で終わる必要があります。
test_dir/などのフォルダを指定すると、外部テーブルは指定されたバケット内のそのフォルダにあるすべての CSV ファイルに関連付けられます。制限: すべてのタイプのファイルの総数は 100 を超えることはできません。
'user.csv'
'test_dir/'
'user.csv','test_dir/','my_dir/'
type
値は oss に固定されています。 これは、外部ストレージタイプが OSS であることを示します。
oss
コマンドの例を次に示します。
* | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, age bigint) with ( endpoint='oss-cn-hangzhou.aliyuncs.com',accessid='yourAccessKeyID',accesskey='yourAccessKeySecret',bucket='examplebucket',objects=ARRAY['my.csv'],type='oss')[result] フィールドが [true] の場合、操作は成功です。

外部テーブルが定義されていることを確認します。
次の文を実行します。 文中の `External storage` は、手順 4 で定義した外部テーブルの名前です。 テーブルのコンテンツが返された場合、外部テーブルは正常に定義されています。
* | select * from <External storage>JOIN 句を使用して、Simple Log Service と OSS のデータに対してフェデレーテッドクエリを実行します。
たとえば、次の分析文を実行して、Simple Log Service ログの `userid` フィールドを OSS ファイルの `userid` フィールドに関連付けて、ログ情報を拡充できます。
説明収集されたログには `userid` パラメーターが含まれている必要があります。
* | select * from <logstore> l join <External storage> u on l.userid = u.userid設定項目
説明
例
Logstore
クエリ対象の Logstore の名前。
test_logstore
外部ストレージ
手順 4 で定義した外部テーブルの名前。
user_meta1

ベストプラクティスの詳細については、「Logstore を OSS 外部テーブルに関連付けてクエリと分析を行う」をご参照ください。