Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用黑名单模式在Amazon RDS中运行跨区域查询_Mysql_Amazon Web Services_Amazon Redshift_Amazon Rds - Fatal编程技术网

Mysql 使用黑名单模式在Amazon RDS中运行跨区域查询

Mysql 使用黑名单模式在Amazon RDS中运行跨区域查询,mysql,amazon-web-services,amazon-redshift,amazon-rds,Mysql,Amazon Web Services,Amazon Redshift,Amazon Rds,我有一组分布在多个地区的Amazon RDS实例。每个RDS实例都有一组类似的表,以可预测的方式作为前缀 例如,我有欧盟西部50所大学的数据库,美国东部50所大学的数据库,每个大学一个数据库(两个地区的100个数据库)。我想得到所有数据库中的学生总数。我们在DynamoDB表中列出了各个数据库的连接配置 目前,如果我们希望在整个数据集上运行MySQL查询,我们将通过以下步骤完成: 从DynamoDB获取所有连接配置 对照黑名单进行检查,以通过通配符筛选出架构 循环应用程序脚本中的每个连接配置(在

我有一组分布在多个地区的Amazon RDS实例。每个RDS实例都有一组类似的表,以可预测的方式作为前缀

例如,我有欧盟西部50所大学的数据库,美国东部50所大学的数据库,每个大学一个数据库(两个地区的100个数据库)。我想得到所有数据库中的学生总数。我们在DynamoDB表中列出了各个数据库的连接配置

目前,如果我们希望在整个数据集上运行MySQL查询,我们将通过以下步骤完成:

  • 从DynamoDB获取所有连接配置
  • 对照黑名单进行检查,以通过通配符筛选出架构
  • 循环应用程序脚本中的每个连接配置(在本例中为PHP)
  • 分别向每个数据库提交MySQL查询,并编写结果的CSV
  • 这个工作流很慢,因为它是单线程的,很难让它正常地失败。它的优点是在白名单方面具有一定的灵活性,但需要更改代码以允许任何类型的非刚性查询

    我调查了以下几点,发现了一些问题:

    • 亚马逊雅典娜、极光、胶水和红移都有类似的功能,但似乎没有强大的跨地区能力
    • MySQL中的联邦表可以跨区域工作,但每次添加新数据库时都需要更多的维护和配置
    • 由于数据集的大小,将所有内容复制到S3存储桶或Datalake的成本会因数据传输成本而过高
    是否有一种工作流或技术可以让我克服单线程、应用程序驱动方法的缺点