AWS Glue 爬虫如何排除 oracle 模式或 oracle 表?

时间:2020-12-25 04:16:35

标签: aws-glue

客户计划使用 Glue 爬虫排除 oracle 模式或 oracle 表?

Glue crawler 不支持 Oracle 和 MySQL 数据库的 /database/schema/tables,我尝试了许多不同的模式来排除 oracle 模式或 oracle 表,但结果不是预测的。

如何设计 Oracle 数据库或 MySQL 数据库的排除模式?

包含模式:测试/%

test 是 oracle 服务名称。

我添加了以下模式来排除架构 APEX_030200 和 WWV 起始表:

  • APEX_030200.WWV*
  • APEX_030200*
  • test_apex_030200_wwv*
  • test.APEX_030200.WWV_*
  • test.APEX_030200.WWV*
  • test.APEX_030200*
  • test.APEX_030200*
  • WWV*

但结果是爬虫包括架构 APEX_030200 的所有表。

2 个答案:

答案 0 :(得分:0)

根据 Glue Crawler include and exclude patterns documentation,您不能在包含数据库引擎(例如 MySQL 或 Oracle)的包含路径中指定架构名称,因为它们不支持架构,至少从某种意义上说数据库中的命名空间。

  • 在大多数 RDBMS 中,例如 MS SQL Server,架构代表一个命名空间。
  • 不过,Oracle 数据库对该术语的使用方式有所不同。架构本质上与用户相同,因为它代表该用户拥有的对象,独立于它们所在的数据库。

因此,对于 Oracle 和 MySQL,排除语法是 database-name/table-name,而不是 database-name/schema-name/table-name

我不知道是否有办法明确排除 Oracle 所谓的架构。

答案 1 :(得分:0)

为了能够排除Oracle中的表,模式需要具有以下格式

USER/EXCLUDE-PATTERN

其中 USER 是表所有者或 Oracle 架构。 PATTERN 确实支持 glob 格式 described in the documentation。比如我加了

XXAPPS/P[!EORU]*

并在爬虫日志中,确认该表已被排除

enter image description here