Analytics Engine のプロビジョン

適用対象スパークエンジン

watsonx.data で外部 Spark エンジンを登録するオプションは、このリリースでは非推奨で、バージョン 2.3 で削除される予定です。 watsonx.data には、Gluten-accelerated Spark エンジンやネイティブ watsonx.data Spark エンジンなど、直接プロビジョニングして使用できる組み込み Spark エンジンがすでに含まれています。

watsonx.dataの場合、以下のユース・ケースを実現するには、IBM Analytics Engine Spark を使用することをお勧めします。

  1. 大量のデータを watsonx.data 表に INGEST しています。 また、取り込み前にデータのクレンジングと変換を行うこともできます。
  2. 表の watsonx.data パフォーマンスを向上させる表保守操作
  3. 照会として表現するのが難しい複雑な分析ワークロード。

IBM Analytics Engine インスタンスを作成できます。

IBM Cloud® us-south (ダラス) または eu-de (フランクフルト) リージョンのいずれかにアクセスできる必要があります。 Analytics Engine インスタンスをプロビジョニングするためにリージョンを追加する場合は、データ待ち時間の問題を回避するために、watsonx.data をプロビジョンしたリージョンに近いリージョンを選択してください。

IBM Cloud® コンソールからのサービスインスタンスの作成

IBM Cloud® コンソールを使ってインスタンスを作成できます。

IBM Analytics Engine インスタンスを作成するには、以下のようにします。

  1. IBM Cloud® コンソールにログインします。

  2. サービス] をクリックし、[ 分析] カテゴリを選択します。

  3. Analytics Engine 」を検索し、タイルをクリックしてサービス・インスタンス作成ページを開く。

  4. サービス・インスタンスをデプロイするために watsonx.data をプロビジョンしたリージョンに近いロケーションを選択します。 現在、サポートされている地域は us-southeu-de のみです。

  5. プランを選択します。 現在、サポートされているサーバーレス・プランはApache Spark用の標準サーバーレスのみです。

  6. 任意の名前を入力し、リソース・グループを選択し、タグを追加して、インスタンスを構成します。

  7. 利用可能な最新ランタイムバージョンを選択します(例えば、 3.4 )。 その他のサポート対象のSparkバージョンについては、 サポート対象のSparkバージョン をご覧ください。

  8. インスタンス関連データを保管するために Analytics Engine インスタンス・ホーム として使用する IBM Cloud Object Storage ・インスタンスをアカウントから選択します。

  9. 作成をクリックして、バックグラウンドでサービス・インスタンスをプロビジョンします。

    新しく作成されたサービスは、 IBM Cloud® リソースリストのサービス 」にリストされます。

IBM Cloud® コマンド・ライン・インターフェースを使用したサービス・インスタンスの作成

IBM Cloud® コマンドラインインターフェイスを使用してサービスインスタンスを作成する:

  1. IBM Cloud® の CLI をダウンロードして構成します。 始めにIBM Cloud®CLIの使用の指示に従ってください。

  2. 地域に応じた API エンドポイントを設定してログインします。

    ibmcloud api https://DOMAIN_NAME
    ibmcloud login
    

    パラメーター値:

    • DOMAIN_NAME: ご使用の地域の API エンドポイント。 例えば、こうだ、 cloud.ibm.com
  3. アカウントリソースグループのリストを取得し、 IBM Analytics Engine サーバーレスインスタンスを作成するターゲットリソースグループとして、返されたリソースグループのいずれかを選択します:

    ibmcloud resource groups
    ibmcloud target -g <RESOURCE_GROUP_NAME>
    

    パラメーター値:

    • RESOURCE_GROUP_NAME: 効率的な編成のために watsonx.data をプロビジョンするときに指定したものと同じ名前を指定します。
  4. サービス・インスタンスを作成します。

    ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> ibmanalyticsengine <PLAN_NAME> <REGION> -p @<PATH_to JSON file with cluster parameters>
    

    パラメーター値:

    • SERVICE_INSTANCE_NAME: インスタンスの名前を指定してください。
    • PLAN_NAME: plan_name8afde05e-5fd8-4359-a597-946d8432dd45 としてプラン名を指定します。
    • REGION: インスタンスをプロビジョンするリージョンを指定します。

    現在、standard-serverless-sparkのみがサポートされているサーバーレスプランであり、us-southとeu-deのみがサポートされているリージョンであることに注意してください。 watsonx.dataをプロビジョンしたリージョンの近くにあるものを選択します。

    • PATH_to JSON ファイル: プロビジョニング・パラメーターを含む JSON ファイルへのパスを含めます。

    例えば、ダラス地域の場合:

    ibmcloud resource service-instance-create MyServiceInstance ibmanalyticsengine standard-serverless-spark us-south -p @provision.json
    

    サービス・インスタンスには任意の名前を付けることができます。 現在、 standard-serverless-sparkのみがサポートされているサーバーレスプランであり、 us-southと eu-deのみがサポートされているリージョンであることに注意してください。

    provision.json ファイルには、作成するインスタンスのプロビジョニング・パラメータが含まれています。

    ペイロード JSON ファイル内の IBM Cloud® Object Storage インスタンスへのエンドポイントは、直接エンドポイントでなければなりません。 ダイレクトエンドポイントは、パブリックエンドポイントよりも優れたパフォーマンスを提供し、送受信帯域幅の料金は発生しません。

    以下は、 provision.json ファイルのサンプルである。

    {
      "default_runtime": {
        "spark_version": "3.4"
        },
      "instance_home": {
        "region": "us-south",
        "endpoint": "https://s3.direct.us-south.cloud-object-storage.appdomain.cloud",
        "hmac_access_key": "<your-hmac-access-key",
        "hmac_secret_key": "<your-hmac-secret-key"
        },
      "default_config": {
        "key1": "value1",
        "key2": "value2"
        }
    }
    

    インスタンス作成コマンドに対するIBM Cloud®応答:

    Creating service instance MyServiceInstance in resource group Default of account <your account name> as <your user name>...
    OK
    Service instance MyServiceInstance was created.
    
    Name:                MyServiceInstance
    ID:                  crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cc7e4373bb0c9d2229f2ece5:1e32e***-afd9-483a-b1**-724ba5cf4***::
    GUID:                1e32e***-afd9-483a-b1**-724ba5cf4***
    Location:            us-south
    State:               provisioning
    Type:                service_instance
    Sub Type:
    Service Endpoints:   public
    Allow Cleanup:       false
    Locked:              false
    Created at:          2021-11-29T07:20:40Z
    Updated at:          2021-11-29T07:20:42Z
    Last Operation:
                        Status    create in progress
                        Message   Started create instance operation
    

    インスタンス作成コマンドに対するレスポンスのサンプルは以下の通り:

    Creating service instance MyServiceInstance in resource group Default of account <your account name> as <your user name>...
    OK
    Service instance MyServiceInstance was created.
    
    Name:                MyServiceInstance
    ID:                  crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cc7e4373bb0c9d2229f2ece5:1e32e***-afd9-483a-b1**-724ba5cf4***::
    GUID:                1e32e***-afd9-483a-b1**-724ba5cf4***
    Location:            us-south
    State:               provisioning
    Type:                service_instance
    Sub Type:
    Service Endpoints:   public
    Allow Cleanup:       false
    Locked:              false
    Created at:          2021-11-29T07:20:40Z
    Updated at:          2021-11-29T07:20:42Z
    Last Operation:
                    Status    create in progress
                    Message   Started create instance operation
    

    出力からのインスタンスIDをメモします。 インスタンス管理APIまたはSparkアプリケーション管理APIを呼び出すときに、インスタンスIDが必要になります。 SparkアプリケーションREST APIを参照してください。

  5. インスタンスの作動可能性の追跡

リソースコントローラREST APIを使用したサービスインスタンスの作成

IBM Analytics Engineサーバーレス・インスタンスは、IBM Cloud®リソース・グループ内になければなりません。 Resource controller REST APIを通じて IBM Analytics Engine サーバーレスインスタンスを作成するための第一歩として、リソースグループIDとサーバーレスプランIDを手元に用意しておく必要がある。

Resource controller REST API を使用してサービスインスタンスを作成します:

  1. IBM Cloud® CLIにログインし、以下のコマンドを実行してリソースグループIDを取得します:

    ibmcloud resource groups
    

    結果例:

    Retrieving all resource groups under account <Account details..>
    OK
    Name      ID      Default Group   State
    Default   XXXXX   true            ACTIVE
    
  2. Standard Serverless for Apache Sparkプランの場合は、以下のリソース・プランIDを使用します:

    8afde05e-5fd8-4359-a597-946d8432dd45
    
  3. IAMトークンを取得します。 手順については、ステップを参照してください。

  4. Resource controller REST API を使用してインスタンスを作成します:

    curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_instances/
    --header "Authorization: Bearer $token" -H 'Content-Type: application/json' -d @provision.json
    

    provision.json ファイルには、作成するインスタンスのプロビジョニング・パラメータが含まれています。 ペイロード内のプロビジョニング・パラメーターの説明については、サーバーレス・インスタンスにおけるアーキテクチャーと概念を参照してください。

    以下は、 provision.json ファイルのサンプルである。

    {
      "name": "your-service-instance-name",
      "resource_plan_id": "8afde05e-5fd8-4359-a597-946d8432dd45",
      "resource_group": "resource-group-id",
      "target": "us-south",
      "parameters": {
        "default_runtime": {
          "spark_version": "3.4"
            },
            "instance_home": {
              "region": "us-south",
              "endpoint": "s3.direct.us-south.cloud-object-storage.appdomain.cloud",
              "hmac_access_key": "your-access-key",
              "hmac_secret_key": "your-secret-key"
              }
        }
    }
    
  5. インスタンスの作動可能性の追跡

インスタンスを作成するためのリソース・コントローラーREST APIについて詳しくは、新規リソース・インスタンスの作成(プロビジョン)を参照してください。

インスタンスの作動可能状況の追跡

新しく作成されたサーバーレス・インスタンスでアプリケーションを実行するには、インスタンスがアクティブな状態でなければならない。

インスタンスの作動可能性を追跡するには:

  1. 以下のコマンドを入力します。
    curl -X GET https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/{instance_id} -H "Authorization: Bearer $token"
    
    応答例:
    {
      "id": "dc0e****-eab2-4t9e-9441-56620949****",
      "state": "created",
      "state_change_time": "2021-04-21T04:24:01Z",
      "default_runtime": {
        "spark_version": "3.4",
        "instance_home": {
          "provider": "ibm-cos",
          "type": "objectstore",
          "region": "us-south",
          "endpoint": "https://s3.direct.us-south.cloud-object-storage.appdomain.cloud",
          "bucket": "ae-bucket-do-not-delete-dc0e****-eab2-4t**-9441-566209499546",
          "hmac_access_key": "eH****g=",
          "hmac_secret_key": "4d********76"
        },
        "default_config": {
          "spark.driver.memory": "4g",
          "spark.driver.cores": 1
        }
      }
    }
    
  2. state 属性の値をチェックする。 インスタンスでアプリケーションの実行を開始する前にアクティブになっている必要があります。

詳細情報

サーバーレス・インスタンスをプロビジョニングする場合は、推奨される ベスト・プラクティスに従ってください。