使用資料存取服務 (DAS) 存取 ADLS 和 ABS 相容存儲

外部應用程式和查詢引擎可以透過 DAS 代理程式存取由watsonx.data管理的Azure Data Lake Storage (ADLS) 和Azure Blob Storage (ABS) 相容於儲存。

資料存取服務 (DAS) 代理功能在 2.1.2 中完全移除,在 watsonx.data 中也不再可用。 您無法使用資料存取服務 (DAS) 代理功能來存取物件儲存 ( S3, ADLS 和 ABS)。

對 ADLS 和 ABS 的 DAS 代理支援僅適用於AccountKey來傳遞watsonx.data憑證。 使用SASToken來傳遞watsonx.data不支援憑證。

若要存取 ADLS 和 ABS 相容儲存:

  1. 從watsonx.data資訊視窗取得 DAS 端點。 點選 i 主頁上的圖示可開啟訊息視窗。

  2. 將Java程式碼中的 ADLS 或 ABS 端點替換為 DAS 端點。 將存取名稱替換為編碼值,如下所示:

    base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}
    

    為了得到Base64編碼字串,使用以下命令之一:

    printf "username:<apikey>" | base64
    
    echo -n "username:<apikey>" | base64
    
  3. 替換其中的容器名稱Java程式碼如下:

    cas/v1/proxy/<storage name in watsonx.data>
    

使用 DAS 的Java程式碼範例

      //For IBM Cloud <ADLS or ABS account name>|base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}
      //For AWS <ADLS or ABS account name>|base64{<crn>|Basic base64{ibmlhapikey_ServiceId-<service_id>:<APIKEY>}}
      String accountName = "<ADLS or ABS account name>|base64{<instanceid>|ZenApikey base64{username:<apikey>}}";
      String accountKey = "any string";
      String endPoint = "<DAS endpoint>";
      String containerName ="cas/v1/proxy/<storagename in watsonx.data>";
      String endpoint = String.format(endPoint,accountName);

      BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
                .endpoint(endpoint)
                .credential(new StorageSharedKeyCredential(accountName, accountKey))
                .buildClient();

      BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);