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

E-MapReduce:AI センター

最終更新日:Jun 30, 2026

StarRocks の AI 関数は、大規模言語モデル (LLM) の機能を SQL に直接組み込みます。これにより、外部のパイプラインにデータを移動することなく、あらゆる OLAP クエリの一部としてテキストの分析、変換、生成を実行できます。

12 種類のすべてのビルトイン関数は、型付きの値 (VARCHAR、FLOAT、JSON、または BOOLEAN) を返します。これらの値は、`JOIN`、`GROUP BY`、集約、フィルター操作と自然に組み合わせることができます。生データは StarRocks 内に保持され、関数に渡したフィールドのみがモデルのエンドポイントに送信されます。

各ユーザーは、100 万トークンの無料試用クォータをご利用いただけます。無料試用クォータを超過した後は、実際のトークン消費量に基づいて追加料金が請求されます。料金の詳細については、「AI 関数の料金」をご参照ください。

機能の利点

  • 高い同時実行効率:4 つのスレッドで数百の同時 LLM 呼び出しを処理します。クライアント側のアプローチでは同等数のプロセスが必要になりますが、その場合、ワークロードが完了するはるか前に OS スケジューラが機能しなくなる可能性があります。

  • レート制限操作ゼロ:組み込みの 3 段階の保護と DashScope 互換の処理により、お客様は RPM や TPM の仕組みを考慮する必要がありません。

  • データはその場に留まる:パイプライン全体がデータベース内の SQL で実行されるため、ETL は不要で、データ漏洩のリスクもありません。

  • トークンコストの削減:述語プッシュダウンにより呼び出し量が削減され、キャッシュにより重複が排除され、正確なアカウンティングですべてのトークンを追跡します。同じワークロードでも、コストを 30% 以上削減できます。

  • 工業グレードの信頼性:行レベルのフォールトトレランス、スマートリトライ、プロファイルベースの可観測性により、数百万行のバッチジョブを無人で実行できます。

ユースケース

ユースケース

関数

顧客レビューに対するダッシュボード対応の感情スコアリング

ai_sentiment

製品カタログやサポートチケットの自動タグ付け

ai_classify

フリーテキストからの構造化フィールド (名前、日付、場所) の抽出

ai_extract

ステージング環境への書き込み前の PII のマスキング

ai_redact

ユーザー生成コンテンツ (UGC) のクリーニングと標準化

ai_fix_grammar

長いドキュメントやチケットスレッドの要約

ai_summarize

多言語レコードの翻訳とローカライズ

ai_translate

セマンティック関連性による FAQ や検索結果のランキング

ai_similarity

一般的な AI テキスト補完とコンテンツ生成

ai_complete

自然言語条件による行のフィルタリング

ai_filter

カスタムナレッジベースまたはリソースに対する Q&A の実行

ai_custom_query

前提条件

開始する前に、カーネルとネットワークの要件を満たしていることを確認してください:

カーネルバージョンの要件

  • 3.3.20-2.1.1 以降

  • 3.5.16-2.1.1 以降

ネットワークアクセスの設定

StarRocks の BE ノードは、外部のモデルサービスエンドポイントに到達するためにアウトバウンドインターネットアクセスが必要です。ご利用のクラスターが実行されている VPC に NAT Gateway を設定します:

  1. NAT Gateway を作成し、それに Elastic IP Address (EIP) をバインドします。

  2. BE ノードの CIDR ブロックからのトラフィックを NAT Gateway 経由でルーティングする SNAT ルールを追加します。

  3. VPC のルートテーブルとセキュリティグループポリシーがアウトバウンドトラフィックを許可していることを確認します。

設定の詳細については、「インターネット NAT ゲートウェイ」をご参照ください。

関数リファレンス

すべての関数は標準 SQL で呼び出されます。結果は型付きの値として返され、後続のクエリ式で直接使用できます。

関数

機能

戻り値

ai_sentiment(text)

テキストを肯定的、否定的、中立、混合、または不明に分類します

VARCHAR

ai_classify(text, labels)

カスタムリストから 1 つのラベルを割り当てます

JSON

ai_extract(text, entity_labels)

名前付きエンティティを抽出し、JSON として返します

JSON

ai_redact(text, categories)

指定された PII カテゴリを [REDACTED] に置き換えます

VARCHAR

ai_fix_grammar(text)

文法とスペルを修正します

VARCHAR

ai_summarize(text)

要約を生成します (オプションで単語数制限あり)

VARCHAR

ai_translate(text, source_lang, target_lang)

テキストをターゲット言語に翻訳します

VARCHAR

ai_similarity(text1, text2)

0 から 1 までのセマンティック類似性スコアを返します

FLOAT

ai_complete(model, prompt)

指定されたモデルとプロンプトを使用してコンテンツを生成します

VARCHAR

ai_complete(model, prompt, params)

追加のパラメーター (温度、max_tokens など) を使用してコンテンツを生成します

VARCHAR

ai_filter(text, condition)

自然言語条件を評価して行をフィルタリングします

BOOLEAN

ai_custom_query(resource, prompt)

カスタムリソースまたはナレッジベースに対してクエリを実行します

VARCHAR

関数の詳細

ai_sentiment

入力テキストの感情を分類します。

構文

ai_sentiment(text)

パラメーター

パラメーター

説明

text

VARCHAR

分析対象のテキスト

戻り値

VARCHAR — 'positive''negative''neutral''mixed'、または 'unknown'。感情を判断できない場合は NULL を返します。

単一値のテスト:

SELECT ai_sentiment('I am happy');
-- 戻り値: 'positive'

テーブル列に適用:

SELECT
  review_id,
  review_text,
  ai_sentiment(review_text) AS sentiment
FROM customer_reviews
LIMIT 10;

ai_classify

定義したリストから 1 つのラベルを割り当てます。

構文

ai_classify(text, labels)

パラメーター

パラメーター

説明

text

VARCHAR

分類対象のテキスト

labels

ARRAY<VARCHAR>

候補ラベル — 2 つ以上 20 個以下の要素

戻り値

JSON — 分類結果が含まれます。分類に失敗した場合は NULL を返します。

単一値のテスト:

SELECT ai_classify('My password is leaked.', ['urgent', 'not urgent']);
-- 戻り値: {"labels": ["urgent"]}

製品説明を一括でタグ付け:

SELECT
  product_id,
  description,
  ai_classify(description, ['clothing', 'shoes', 'accessories', 'furniture']) AS category
FROM products
LIMIT 10;

ai_extract

テキストから名前付きエンティティを抽出し、JSON オブジェクトとして返します。

構文

ai_extract(text, entity_labels)

パラメーター

パラメーター

説明

text

VARCHAR

抽出元のテキスト

entity_labels

ARRAY<VARCHAR>

抽出するエンティティの型。例:['person', 'location', 'organization']

戻り値

キーがエンティティの型で、値が抽出されたテキストである JSON オブジェクト。

SELECT ai_extract(
  '田中太郎は東京に住んでおり、Acme 株式会社で働いています。',
  ['person', 'location', 'organization']
);
-- 戻り値: {"person":"田中太郎","location":"東京","organization":"Acme 株式会社"}

ai_redact

指定された PII カテゴリを [REDACTED] に置き換えます。

構文

ai_redact(text, categories)

パラメーター

パラメーター

説明

text

VARCHAR

マスキング対象のテキスト

categories

ARRAY<VARCHAR>

マスキングする PII カテゴリ。例:['person', 'email', 'phone']

戻り値

一致したエンティティが [REDACTED] に置き換えられた VARCHAR。

単一値のテスト:

SELECT ai_redact(
  'John Doe lives in New York. His email is john.doe@example.com.',
  ['person', 'email']
);
-- 返り値: "[REDACTED] lives in New York. His email is [REDACTED]."

エクスポート前にログテーブル全体の PII をマスキング:

SELECT
  log_id,
  ai_redact(log_text, ['person', 'email', 'phone']) AS redacted_log
FROM audit_logs
LIMIT 10;

ai_fix_grammar

テキストの文法とスペルを修正します。

構文

ai_fix_grammar(text)

パラメーター

パラメーター

説明

text

VARCHAR

修正対象のテキスト

戻り値

文法とスペルが修正された VARCHAR。

SELECT ai_fix_grammar('This sentence have some mistake');
-- 戻り値: "This sentence has some mistakes."

ai_summarize

入力テキストの簡潔な要約を生成します。

構文

ai_summarize(text)

パラメーター

パラメーター

必須

説明

text

VARCHAR

はい

要約対象のテキスト

戻り値

VARCHAR の要約。

SELECT ai_summarize(
  'Apache Spark is a unified analytics engine for large-scale data processing...',
  10
);
-- 戻り値: "Spark: unified engine for large-scale data processing with APIs and tools."

ai_translate

テキストをある言語から別の言語に翻訳します。

構文

ai_translate(text, source_lang, target_lang)

パラメーター

パラメーター

説明

text

VARCHAR

翻訳対象のテキスト

source_lang

VARCHAR

ソース言語コード (ISO 639-1)

target_lang

VARCHAR

ターゲット言語コード (ISO 639-1)

一般的な言語コード:

言語

コード

アラビア語

'ar'

中国語 (簡体字)

'zh'

英語

'en'

フランス語

'fr'

ドイツ語

'de'

ヒンディー語

'hi'

日本語

'ja'

韓国語

'ko'

ポルトガル語

'pt'

ロシア語

'ru'

スペイン語

'es'

戻り値

翻訳された VARCHAR。

SELECT ai_translate('Hello, how are you?', 'en', 'es');
-- 戻り値: "Hola, ¿cómo estás?"

ai_similarity

2 つのテキスト間のセマンティック類似性を計算します。

構文

ai_similarity(text1, text2)

パラメーター

パラメーター

説明

text1

VARCHAR

最初のテキスト

text2

VARCHAR

2 番目のテキスト

戻り値

0 から 1 の間の FLOAT。スコア 1.0 はテキストが同一であることを意味します。このスコアは主にソートに使用されます。

SELECT ai_similarity(
  '山でハイキングを楽しむのが好きです。',
  '山道を歩くのが大好きです。'
);
-- 戻り値: 0.82

ai_complete

指定されたモデルを使用してコンテンツを生成します。シンプルな形式とパラメーター付きの形式の 2 つのオーバーロードをサポートします。

構文

-- オーバーロード 1: シンプル
ai_complete(model, prompt)
-- オーバーロード 2: パラメーター付き
ai_complete(model, prompt, params)

パラメーター

パラメーター

説明

model

VARCHAR

モデル名。例:'qwen-plus'

prompt

VARCHAR

コンテンツ生成をガイドするプロンプト

params

MAP<VARCHAR, VARCHAR>

オプション。追加のモデルパラメーター (例:temperaturemax_tokenstop_pstop)

戻り値

VARCHAR — 生成されたテキスト。

シンプルな形式:

SELECT ai_complete('qwen-plus', '20% 割引の夏の自転車セールのためのキャッチーなメール件名を書いてください');
-- 戻り値: "夏のサイクリングカーニバル:期間限定で 20% オフ!"

パラメーター付き:

SELECT ai_complete('qwen-plus', 'クラウドコンピューティングの利点を要約してください', map{'temperature':'0.7', 'max_tokens':'200'});
-- 戻り値: "クラウドコンピューティングは、スケーラブルなリソース、コスト効率などを提供します..."

ai_filter

テキストに対して自然言語条件を評価し、TRUE または FALSE を返します。WHERE 句で行をフィルタリングするのに便利です。

構文

ai_filter(text, condition)

パラメーター

パラメーター

説明

text

VARCHAR

評価対象のテキスト

condition

VARCHAR

フィルター基準を記述する自然言語条件

戻り値

BOOLEAN — テキストが条件を満たす場合は TRUE、それ以外は FALSE。

SELECT * FROM reviews WHERE ai_filter(review_text, 'mentions product quality issues');
-- 戻り値: レビューテキストが製品品質の問題について言及している行

ai_custom_query

カスタムリソースまたはナレッジベースに対してクエリを実行します。

構文

ai_custom_query(resource, prompt)

パラメーター

パラメーター

説明

resource

VARCHAR

クエリ対象のカスタムリソースまたはナレッジベースの名前

prompt

VARCHAR

リソースに尋ねるクエリまたは質問

戻り値

VARCHAR。

SELECT ai_custom_query('my_knowledge_base', 'What is StarRocks?');
-- 戻り値: "StarRocks is a high-performance analytical data warehouse..."

クラスター設定

AI 関数の動作は BE の動的パラメーターによって制御されます。ADMIN SET CONFIG を使用してランタイムに変更できます — 再起動は不要です。

現在の値を表示するには:

SELECT * FROM information_schema.be_configs WHERE NAME LIKE 'ai_%';

モデル接続

パラメーター

デフォルト

説明

ai_function_model_endpoint

"https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"

モデルサービスエンドポイント。OpenAI 互換の Chat/Completions エンドポイントをサポートします。

ai_function_model_type

"qwen-plus"

呼び出すモデル。テキスト生成モデルをサポートします。

ai_function_model_api_key

"sk-89c1***********95d0"

Alibaba Cloud Model Studio の API キー。詳細については、「API キーの取得」をご参照ください。

ai_function_system_prompt

"You are a helpful assistant."

すべての AI 関数に適用されるシステムプロンプト。

ai_function_http_connect_timeout_ms

10000

HTTP 接続タイムアウト (ミリ秒単位、デフォルト:10 秒)。

ai_function_http_timeout_ms

600000

HTTP リクエストタイムアウト (ミリ秒単位、デフォルト:10 分)。

ai_function_max_inflight_requests

100

モデルへの最大同時 HTTP リクエスト数。リクエストスループットを制御します。

ai_function_request_template

(OpenAI 互換フォーマット)

リクエストボディテンプレート。プレースホルダー:$0=モデル、$1=システムプロンプト、$2=ユーザープロンプト、$3=オプションの追加パラメーター (カンマ区切り)。

バッチサイズ

各関数はバッチでモデルにリクエストを送信します。バッチサイズを大きくすると、モデル呼び出しの数が減り、合計応答時間を短縮できます。

パラメーター

デフォルト

関数

ai_function_sentiment_batch_size

10

ai_sentiment

ai_function_classify_batch_size

10

ai_classify

ai_function_similarity_batch_size

10

ai_similarity

ai_function_fix_grammar_batch_size

3

ai_fix_grammar

ai_function_mask_batch_size

3

ai_redact

ai_function_translate_batch_size

3

ai_translate

ai_function_extract_batch_size

1

ai_extract

ai_function_gen_batch_size

1

ai_complete

ai_function_query_batch_size

1

ai_filter

ai_function_summarize_batch_size

1

ai_summarize

プロンプトテンプレート

各関数は設定可能なプロンプトテンプレートを使用します。テンプレートのプレースホルダーは $0$1 などを使用します。

パラメーター

プレースホルダー

関数

ai_function_sentiment_prompt

$0=テキスト

ai_sentiment

ai_function_classify_prompt

$0=ラベル (JSON エンコード)、$1=テキスト

ai_classify

ai_function_extract_prompt

$0=ラベル、$1=テキスト

ai_extract

ai_function_fix_grammar_prompt

$0=テキスト

ai_fix_grammar

ai_function_mask_prompt

$0=ラベル、$1=テキスト

ai_redact

ai_function_summarize_prompt

$0=単語数、$1=テキスト

ai_summarize

ai_function_translate_prompt

$0=ターゲット言語、$1=テキスト

ai_translate

ai_function_similarity_prompt

$0=テキストペア

ai_similarity

ai_function_gen_prompt

$0=生成命令

ai_complete

ai_function_query_prompt

$0=クエリ命令、$1=テキスト

ai_filter

ai_function_custom_query_prompt

$0=クエリ命令、$1=テキスト

ai_custom_query