claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialdevelopment

🐝aidp-hive

説明

AIDPノートブックから、AIDP の `aidataplatform` Spark フォーマットハンドラーを介して Apache Hive の読み書きを行います。 次のような場合に使用: ユーザーが Hive、HiveServer2、HS2、HCatalog に言及している場合、または Hive メタストアのホスト/ポートを持っている場合。 認証方式: ホスト/ポート + ユーザー名/パスワード。 アクセス権限: 読み取り・書き込み。

原文を表示

Read or write Apache Hive from an AIDP notebook via the AIDP `aidataplatform` Spark format handler. Use when the user mentions Hive, HiveServer2, HS2, HCatalog, or has a Hive metastore host/port. Auth is host/port + user/password. Read-write.

ユースケース

  • Hive、HiveServer2、HS2に接続するとき
  • HCatalogを使用するとき
  • Hiveメタストアのホスト/ポート情報がある場合
  • Apache Hiveの読み書きを行うとき

本文(日本語訳)

aidp-hive — AIDP aidataplatform 経由の Apache Hive

次のような場合に使用

  • ユーザーが AIDP ノートブックから Hive テーブルの読み取りまたは書き込みを行いたい場合。
  • ユーザーが次のキーワードを口にした場合:「Hive」「HiveServer2」「HS2」「HCatalog」「Hive メタストア」、または Hive のデータベース名・テーブル名。

次のような場合には使用しない

  • Kerberos 認証付きの Oracle Big Data Service (BDS) HiveServer2 に Spark JDBC 経由で接続する場合 → カスタム skill を使用してください(aidp-bds-hive は v0.4 スコープから削除済み。Kerberos が必要なお客様がいる場合は再検討してください)。 現在の aidp-hive skill は、aidataplatform フォーマットハンドラを介した非 Kerberos Hive(LDAP / SASL-PLAIN / NoAuth)に対応しています。
  • データが oci:// 上に存在する Iceberg-on-Hive スタイルのメタデータを扱う場合 → aidp-iceberg を使用してください。

AIDP ノートブックの前提条件

  1. sys.path にヘルパーが存在すること(事前に aidp-connectors-bootstrap を実行してください)。
  2. ネットワーク: クラスターが設定済みポート(通常 10000)で HS2 ホストに到達できること。 Hive がお客様の VCN 内にある場合は、VCN ピアリングが設定されていることを確認してください — クラスター Pod の CIDR からユーザー VCN へのルートは暗黙的には存在しません。
  3. 環境変数 / OCI Vault シークレット:
    • HIVE_HOST(HiveServer2 のホスト名)
    • HIVE_PORT(通常 10000
    • HIVE_USERHIVE_PASSWORD
    • HIVE_SCHEMA(Hive データベース名)
    • HIVE_TABLE(Hive テーブル名)

読み取り

import os
from oracle_ai_data_platform_connectors.aidataplatform import (
    AIDP_FORMAT, aidataplatform_options,
)

opts = aidataplatform_options(
    type="HIVE",
    host=os.environ["HIVE_HOST"],
    port=int(os.environ.get("HIVE_PORT", "10000")),
    user=os.environ["HIVE_USER"],
    password=os.environ["HIVE_PASSWORD"],
    schema=os.environ["HIVE_SCHEMA"],
    table=os.environ["HIVE_TABLE"],
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

書き込み

opts = aidataplatform_options(
    type="HIVE",
    host=os.environ["HIVE_HOST"],
    port=int(os.environ.get("HIVE_PORT", "10000")),
    user=os.environ["HIVE_USER"],
    password=os.environ["HIVE_PASSWORD"],
    schema=os.environ["HIVE_SCHEMA"],
    table=os.environ["HIVE_TARGET_TABLE"],
    extra={"write.mode": "APPEND"},   # CREATE | APPEND | OVERWRITE
)
df.write.format(AIDP_FORMAT).options(**opts).save()

プッシュダウン SQL

opts = aidataplatform_options(
    type="HIVE",
    host=os.environ["HIVE_HOST"],
    port=int(os.environ.get("HIVE_PORT", "10000")),
    user=os.environ["HIVE_USER"],
    password=os.environ["HIVE_PASSWORD"],
    extra={
        "pushdown.sql": (
            "SELECT customer_id, SUM(amount) AS total "
            "FROM sales_db.transactions "
            "WHERE event_dt >= '2025-01-01' "
            "GROUP BY customer_id"
        ),
    },
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

注意事項

  • database.name オプションは存在しません — Hive はデータベースの識別に schema を直接使用します(例: defaultsales_db)。database_name は渡さないでください。
  • ネットワーク到達性が最も多い障害原因です。 クラスターから次のようにスモークテストを行ってください: socket.create_connection((host, port), timeout=8)。 これが失敗する場合は認証の問題ではなくネットワークの問題です — VCN ピアリング / NSG / DNS の順で確認してください。
  • この skill では Kerberos は使用できません。 このコネクタハンドラは LDAP / SASL-PLAIN / NoAuth を使用します。Hive クラスターが Kerberos のみを受け付ける場合は、keytab を使用した Spark ネイティブの JDBC パスが必要です(v0.5 のスコープ外 — Issue を起票してください)。
  • 書き込みモードCREATE(既存の場合はエラー)、APPENDOVERWRITE。デフォルトは CREATE です。
  • パーティション分割テーブル。 パーティション分割された Hive テーブルへの書き込み時、OVERWRITE は DataFrame の異なるパーティションキーが触れるすべてのパーティションを上書きします。触れていない既存のパーティションはそのまま保持されます。

参考資料

原文(English)を表示

aidp-hive — Apache Hive via AIDP aidataplatform

When to use

  • User wants to read or write a Hive table from an AIDP notebook.
  • User mentions: "Hive", "HiveServer2", "HS2", "HCatalog", "Hive metastore", a Hive database/table name.

When NOT to use

  • For Oracle Big Data Service (BDS) HiveServer2 with Kerberos auth via Spark JDBC → use a custom skill (we removed aidp-bds-hive from v0.4 scope; revisit if your customer needs Kerberos specifically). The current aidp-hive skill covers non-Kerberos Hive (LDAP / SASL-PLAIN / NoAuth) via the aidataplatform format handler.
  • For Iceberg-on-Hive-style metadata where data lives on oci://aidp-iceberg.

Prerequisites in the AIDP notebook

  1. Helpers on sys.path (run aidp-connectors-bootstrap first).
  2. Network: cluster must reach the HS2 host on the configured port (typically 10000). If your Hive lives in a customer VCN, ensure VCN peering is in place — the cluster pod CIDR has no implicit route to user VCNs.
  3. Env vars / OCI Vault secrets:
    • HIVE_HOST (HiveServer2 hostname)
    • HIVE_PORT (typically 10000)
    • HIVE_USER, HIVE_PASSWORD
    • HIVE_SCHEMA (Hive database name)
    • HIVE_TABLE (Hive table name)

Read

import os
from oracle_ai_data_platform_connectors.aidataplatform import (
    AIDP_FORMAT, aidataplatform_options,
)

opts = aidataplatform_options(
    type="HIVE",
    host=os.environ["HIVE_HOST"],
    port=int(os.environ.get("HIVE_PORT", "10000")),
    user=os.environ["HIVE_USER"],
    password=os.environ["HIVE_PASSWORD"],
    schema=os.environ["HIVE_SCHEMA"],
    table=os.environ["HIVE_TABLE"],
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

Write

opts = aidataplatform_options(
    type="HIVE",
    host=os.environ["HIVE_HOST"],
    port=int(os.environ.get("HIVE_PORT", "10000")),
    user=os.environ["HIVE_USER"],
    password=os.environ["HIVE_PASSWORD"],
    schema=os.environ["HIVE_SCHEMA"],
    table=os.environ["HIVE_TARGET_TABLE"],
    extra={"write.mode": "APPEND"},   # CREATE | APPEND | OVERWRITE
)
df.write.format(AIDP_FORMAT).options(**opts).save()

Pushdown SQL

opts = aidataplatform_options(
    type="HIVE",
    host=os.environ["HIVE_HOST"],
    port=int(os.environ.get("HIVE_PORT", "10000")),
    user=os.environ["HIVE_USER"],
    password=os.environ["HIVE_PASSWORD"],
    extra={
        "pushdown.sql": (
            "SELECT customer_id, SUM(amount) AS total "
            "FROM sales_db.transactions "
            "WHERE event_dt >= '2025-01-01' "
            "GROUP BY customer_id"
        ),
    },
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

Gotchas

  • No database.name option — Hive uses schema directly to identify the Hive database (e.g. default, sales_db). Don't pass database_name.
  • Network reachability is the most common failure. Smoke-test from the cluster: socket.create_connection((host, port), timeout=8). If this fails, it's a network problem, not an auth problem — VCN peering / NSG / DNS, in that order.
  • No Kerberos on this skill. This connector handler uses LDAP / SASL-PLAIN / NoAuth. If your Hive cluster only accepts Kerberos, you need a Spark-native JDBC path with a keytab (out of scope for v0.5 — file an issue).
  • Write modesCREATE (fail if exists), APPEND, OVERWRITE. Default is CREATE.
  • Partitioned tables. When writing to a partitioned Hive table, OVERWRITE overwrites all partitions touched by the DataFrame's distinct partition keys; existing partitions not touched are preserved.

References

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。