使用資料存取服務 (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 相容儲存:
-
從watsonx.data資訊視窗取得 DAS 端點。 點選
i主頁上的圖示可開啟訊息視窗。 -
將Java程式碼中的 ADLS 或 ABS 端點替換為 DAS 端點。 將存取名稱替換為編碼值,如下所示:
base64{<crn>|Basic base64{ibmlhapikey_<user_id>:<IAM_APIKEY>}}為了得到Base64編碼字串,使用以下命令之一:
printf "username:<apikey>" | base64echo -n "username:<apikey>" | base64 -
替換其中的容器名稱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);