Amazon redshift 无法从AWS红移访问AWS Athena表

Amazon redshift 无法从AWS红移访问AWS Athena表,amazon-redshift,amazon-athena,Amazon Redshift,Amazon Athena,我正在尝试从AWS红移访问现有的AWS Athena表 我尝试在AWS红移控制台中创建外部模式(指向AWS Athena DB)。它成功地创建了外部模式,但没有显示来自Athena DB的表。下面是使用的代码 CREATE EXTERNAL SCHEMA Ext_schema_1 FROM DATA CATALOG DATABASE 'sample_poc' REGION 'us-east-1' IAM_ROLE 'arn:aws:iam::55276673986:role/sample_Red

我正在尝试从AWS红移访问现有的AWS Athena表

我尝试在AWS红移控制台中创建外部模式(指向AWS Athena DB)。它成功地创建了外部模式,但没有显示来自Athena DB的表。下面是使用的代码

CREATE EXTERNAL SCHEMA Ext_schema_1
FROM DATA CATALOG
DATABASE 'sample_poc'
REGION 'us-east-1'
IAM_ROLE 'arn:aws:iam::55276673986:role/sample_Redshift_Role';
几乎没有观察结果。

  • 即使我指定了不存在的Athena DB名称,它仍然会以红移的方式创建外部模式
  • 我的红移角色可以完全访问S3和雅典娜

  • AWS Glue目录包含数据库,其中包含表。从雅典娜或胶水目录的角度来看,没有模式

    在红移光谱中,您创建了一个
    外部模式
    ,它实际上是一个占位符对象,是红移中指向粘合目录的指针

  • 即使我指定了不存在的Athena DB名称,它仍然会以红移的方式创建外部模式
  • 正如您所发现的,对象的创建是惰性的,如果IAM角色需要调整,这将非常有用。注意:文件中的示例有一个附加条款:

    创建外部数据库(如果不存在)

    因此,如果您希望创建数据库,那么您的完整语句也必须是这样

    CREATE EXTERNAL SCHEMA Ext_schema_1 
    FROM DATA CATALOG
    DATABASE 'sample_poc'
    REGION 'us-east-1'
    IAM_ROLE 'arn:aws:iam::55276673986:role/sample_Redshift_Role'
    CREATE EXTERNAL DATABASE IF NOT EXISTS;
    
    它不显示雅典娜数据库中的表格

    如果您正在为一个不存在的数据库创建一个外部模式,那么将不会显示任何内容。我假设你的观点与你创建外部模式的实际尝试无关;您将它指向一个现有的带有表的模式

    我发现使用红移频谱DDL创建的表可以通过Glue目录立即提供给Athena。 我还尝试在Glue Catalog中指定表,或者使用爬虫,在这两种情况下,这些表都可以在红移中看到

    您正在使用什么工具尝试显示表格?您的意思是表不在元数据视图中列出,还是表的内容不显示

    红移确实在允许的数据类型上存在一些差异,雅典娜中所需的配置单元DDL可能与红移频谱DDL存在一些差异

  • 我的红移角色可以完全访问S3和雅典娜
  • 假设您使用的是Glue Catalog而不是旧的Athena Catalog,那么您的角色不需要任何Athena访问。

    在阅读中,我想知道您是否需要“将您的Athena数据目录迁移到AWS Glue数据目录”?