I want to create an external schema like
create external schema ruben_external
from data catalog
database 'ruben_external'
region 'eu-north-1'
iam_role 'arn:aws:iam::xxxxxxxx:role/ruben_redshift_external'
create external database if not exists ;
create external table ruben_external.ruben_manifest_test
(
customer_id bigint,
external_cust_id varchar(30)
row format serde 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
with serdeproperties('serialization.format'='1')
stored as
inputformat 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
outputformat 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
location 's3://mybucket/folder1/LATEST_redshift_external_location_manifest.json'
;
In my case the IAM role ruben_redshift_external
- has a policy attached with full access to S3, glue and lakeformation
- is granted in Lake Formation permissions to create databases, select the table and access to the data lake location
but the fact that the role has direct access to S3 is ignored by Redshift, it seems to always use Lake Formation to get some temporary credentials to access S3.
I would like to disable the Lake Formation resolve step for this particular schema or redshift instance if it's possible mainly to help me debug. The external table I'm creating uses a manifest file as location (the manifest points to multiple parquet files), it seems that Lake Formation provides credentials that allow redshift to read the manifest file but not the files pointed by the manifest and I was hoping to confirm that. See related question