ArrayList<ResourcePermission> permissions=new ArrayList<>();
ArrayList<String> action= new ArrayList<>();
action.add("quicksight:UpdateDataSourcePermissions");
action.add("quicksight:DescribeDataSource");
action.add("quicksight:DescribeDataSourcePermissions");
action.add("quicksight:PassDataSource");
action.add("quicksight:UpdateDataSource");
action.add("quicksight:DeleteDataSource");
permissions.add(new ResourcePermission().withPrincipal(PrincipalArn).withActions(action));
return(getClient().createDataSource(new CreateDataSourceRequest().withDataSourceId(DataSourceId).withAwsAccountId(AwsAccountID).withName(DataSourceName).withType(DataSourceType.S3)
.withDataSourceParameters(new DataSourceParameters().withS3Parameters(new S3Parameters().withManifestFileLocation(new ManifestFileLocation().withBucket(Bucket_Name).withKey(ManifestFileName)))).withPermissions(permissions)));这是我用来在quicksight中创建dataSource的代码
Map<String, PhysicalTable> physicalTableMap=new HashMap<String, PhysicalTable>();
ArrayList<InputColumn> collection =new ArrayList<>();
PhysicalTable physicalTable=new PhysicalTable().withS3Source(new S3Source().withDataSourceArn(DataSourceArn).withInputColumns(collection).withUploadSettings(new UploadSettings().withContainsHeader(false)));
physicalTableMap.put("string",physicalTable);
ArrayList<ResourcePermission> permissions=new ArrayList<>();
ArrayList<String> action=new ArrayList<>();
action.add("quicksight:UpdateDataSetPermissions");
action.add("quicksight:DescribeDataSet");
action.add("quicksight:DescribeDataSetPermissions");
action.add("quicksight:PassDataSet");
action.add("quicksight:DescribeIngestion");
action.add("quicksight:ListIngestions");
action.add("quicksight:UpdateDataSet");
action.add("quicksight:DeleteDataSet");
action.add("quicksight:CreateIngestion");
action.add("quicksight:CancelIngestion");
permissions.add(new ResourcePermission().withPrincipal(PrincipalArn).withActions(action));
return(getClient().createDataSet(new CreateDataSetRequest().withAwsAccountId(AwsAccountID).withDataSetId(DataSetId).withName(DataSetName).withPhysicalTableMap(physicalTableMap).withImportMode(DataSetImportMode.SPICE).withPermissions(permissions)));这是在QuickSight中创建数据集的代码,当我同时使用这两个API时,那么问题就产生了,数据集无法从数据集中导入数据集,或者导入总是失败的。
也是
创建数据集后是否必须使用createIngestion API?如果是,那我该怎么用呢?
发布于 2021-01-08 08:24:27
您需要确保数据源是实际创建的,并且具有状态:"CREATION_SUCCESSFUL".
您可以通过使用DescribeDataSourceRequest并从结果中获得:
describeDataSourceResult.getDataSource().getStatus()
上面的SDK调用是针对JavaV1.API的。
对于v.2 API也应该是类似的。
https://stackoverflow.com/questions/62265235
复制相似问题