我是数据库管理/治理的新手。
问题:我的公司 Postgres RDB 位于 AWS Redshift 中。所以这不是一个私人项目,而是企业环境。我经常添加新表/列、更改表名称、添加新表,因此 ERD 图经常更改。我还在 draw.io 中为正在对数据库使用 SQL 查询的同事绘制了 ERD 示意图。更改数据库的结构(新的/更改的表名或列名)意味着我必须每次为我的同事更改数据库的示意图,否则他们将无法使用/编写他们的查询。这是一个繁琐的手动过程,消耗了我大量的时间。
问题:有没有任何工具/解决方案可以使此过程自动化?我对可以自己构建的免费工具或解决方案感兴趣。我也对新的解决方案持开放态度。谢谢你!
我从 Web 界面看到需要对我的 RDS postgresql 实例进行维护,所以我运行了aws rds describe-pending-maintenance-actions
,它说有一个“系统更新”,因为“有新的操作系统更新可用”。
没关系,所以我在 90 分钟前(aws rds stop-db-instance
当时aws rds start-db-instance
)重新启动了实例。
90 多分钟后,实例仍然“需要维护”。
我做错了什么,或者没有做什么?或者这只是一个通知,表明 AWS 将做一些我无法控制的事情?
$ aws rds describe-pending-maintenance-actions --output=table
-------------------------------------------------------------------------------------------
| DescribePendingMaintenanceActions |
|| PendingMaintenanceActions ||
|+---------------------+-----------------------------------------------------------------+|
|| ResourceIdentifier | arn:aws:rds:us-east-1:123456789012:db:xxxxxxxxxxxx ||
|+---------------------+-----------------------------------------------------------------+|
||| PendingMaintenanceActionDetails |||
||+-----------------------------+-------------------------------------------------------+||
||| Action | system-update |||
||| AutoAppliedAfterDate | 2022-06-30T00:00:00+00:00 |||
||| CurrentApplyDate | 2022-06-30T00:00:00+00:00 |||
||| Description | New Operating System update is available |||
||| ForcedApplyDate | 2022-10-30T00:00:00+00:00 |||
||+-----------------------------+-------------------------------------------------------+||
|| PendingMaintenanceActions ||
|+---------------------+-----------------------------------------------------------------+|
|| ResourceIdentifier | arn:aws:rds:us-east-1:123456789012:yyyyyyyyyyyyy ||
|+---------------------+-----------------------------------------------------------------+|
||| PendingMaintenanceActionDetails |||
||+-----------------------------+-------------------------------------------------------+||
||| Action | system-update |||
||| AutoAppliedAfterDate | 2022-06-30T00:00:00+00:00 |||
||| CurrentApplyDate | 2022-06-30T00:00:00+00:00 |||
||| Description | New Operating System update is available |||
||| ForcedApplyDate | 2022-10-30T00:00:00+00:00 |||
||+-----------------------------+-------------------------------------------------------+||
我也在堆栈溢出上发布了这个,但在那里没有得到太多的关注。如果我无法在这里获得一些想法,那么我可能会向 AWS 开一张支持票。
我正在尝试将 AWS Aurora Postgres 12 上的排序规则设置为用户定义的排序规则类型。
CREATE COLLATION ndcoll (provider = icu, locale = 'und', deterministic = false);
我能够很好地创建排序规则。它最终被输入到 pg_collations 表中。
但是,当我尝试使用这个新的用户定义排序规则创建数据库时,我一直收到错误消息SQL Error [42809]: ERROR: invalid locale name: "ndcoll"
这是创建数据库语句:
create database "foo" with template 'bar' lc_collate = "ndcoll";
我知道还有一种方法可以使用自定义参数组在服务器级别设置排序规则。但是我使用 aurora-postgres 12 的参数组系列没有可用于设置排序规则的参数。创建用户定义的排序规则后,我重新启动了 Aurora 服务器,但仍然无法让数据库识别语言环境。我可能也不了解 locale 和 lc_collate 。也许我从根本上存在误解。
是否有人对我如何使用用户定义的排序规则有任何见解 1)使用此用户定义的排序规则创建新数据库或 2)将服务器级别的排序规则设置为 aurora-postgres12 参数组中的非确定性排序规则家庭。
提前致谢!
我可以通过 AWS CLI 进行 Athena 查询。这需要我先承担一个角色(我使用awsume
)。该角色需要 MFA。
现在我也想为此配置 Datagrip。但是,有两种身份验证选项:
- 用户/通行证 - 我可以输入我的 AWS 密钥 ID 和密码,但我认为如果没有 MFA 令牌也会失败(Datagrip 2021.1 中没有它的字段)。
- AWS 配置文件 - 我想出了要放入“配置文件”的内容 - 这是
source_profile
我在我的角色配置文件中的~/.aws/config
. 但是,我不知道该放什么User
。
如果我输入:
- 角色配置文件的名称
- 角色名称
- 角色的 ARN
- 我的 AWS 用户名它们都因错误而失败:
指定的数据库用户/密码组合被拒绝:[HY000][100071] [Simba]AthenaJDBC AWS Athena 客户端抛出错误。用户:arn:aws:iam::[NUMBER]:user/[MYUSERNAME] 无权执行:athena:ListDataCatalogs [执行 ID 不可用]
com.simba.athena.amazonaws.services.athena.model.AmazonAthenaException:用户:arn:aws:iam::[NUMBER]:user/[MYUSERNAME] 无权执行:athena:ListDataCatalogs(服务:AmazonAthena;状态码:400;错误代码:AccessDeniedException;请求 ID:[UUID];代理:null
即使我在User
Datagrip 对话框中将角色作为 a 输入,我的用户名也会出现同样的错误。
我需要从我的 mongodb 4.2 到兼容 DocumenDb 4.0 的 mongorestore 我从aws得到命令, 这就是
mongorestore --ssl --host="abc.aws.com:27017" --username=user --password=pass --sslCAFile rds-combined-ca-bundle.pem dump
但它向我显示了这个错误
[1] 1120
-bash: dGFp: command not found
[root@mongo-tf-doc01 dump]# 2021-04-06T12:10:48.434+0000 error connecting to host: could not connect to server: server selection error: server selection timeout
current topology: Type: Single
Servers:
Addr: abc.aws.com:27017:27017, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection(abc.aws.com:27017[-121]) connection is closed
我能够成功连接 documentdb,所以我知道这不是连接问题,但是当我恢复时出现错误
我发现可以在 AWS RDS 增强监控页面(我使用 Postgres 9.5.19)中显示 Rrqms 和 Wrqms 图,但我找不到关于这些参数的任何详细说明。
通过谷歌搜索,我只发现这两个非常模糊的解释:
来自http://heshen.lofter.com/post/cfa6d_b1b5cb0
- rrqms:每秒合并到设备的读取请求数。
- wrqms:每秒合并到设备的写入请求数。
来自https://www.codetd.com/en/article/7988617
- rrqms : 与设备相关的每秒读请求的Merge数(当系统调用需要读数据时,VFS请求发送给各个FS,FS如果发现不同的读请求读取的数据是一样的Block数据, FS 将请求合并合并)
- wrqm / s:与设备相关的每秒写入请求数是 Merge 的数量。
不过,这些解释对我来说仍然很模糊。是的,一个是读取,另一个是每(毫秒)秒写入,但合并到哪里?从哪里来?由谁发行等...
在 aws RDS 上,我有一个 mysql8.0.16
实例正在运行。我现在的问题是,INFORMATION_SCHEMA.ST_SPATIAL_REFERENCE_SYSTEMS
桌子是空的。
这对我来说是个问题,因为我想创建下表:
CREATE TABLE my_table
(
...
coordinates POINT NOT NULL SRID 4326
...
);
但这会导致显示错误消息There's no spatial reference system with SRID 4326
。
这里发生了什么?为什么桌子是空的?我希望它至少包含一个SRID 4326
.
我有一张按日期组织的表格。在 8400 万行中,有 2600 万行都在一个日期命中。我想删除那个日期。
日期字段上有一个索引。
我delete from <table> where <date_field> = 'that date'
昨天开始了。它已经运行了将近 24 小时。
- AWS 向我展示了大约 3k 的稳定读取iops
- 每 5 分钟将峰值写入 10,否则为 0
- CPU 徘徊在 10% 左右
有没有办法估计这个删除是否会在太阳膨胀和地球被焚烧之前完成?我没想到会花这么长时间。这似乎非常缓慢。
编辑:
在我运行查询之前,我做了一个explain delete from <table> where <date_field> = 'that date'
,它似乎表明正在使用索引。
我在 AWS S3 上有一个大的(5-10 GB)二进制文件,需要自定义解析,可能在 python 中。它本质上是由数百万个数据帧组成的序列集,所有数据帧都具有相同的结构。将这些数据导入无服务器/托管 AWS Aurora PostgreSQL 实例的最佳方式是什么?到目前为止,我已经想到: 1. 我可以写入 CSV 文件并使用 COPY,但大小将是天文数字 2. 我可以通过网络分批发送它 3. 使用 AWS Glue,尽管我还在学习。
我有一个使用 Spectrum 表的 CTE 查询。当我尝试将 CTE 与自身结合时:
WITH foo AS (
SELECT col1
FROM spectrum.bar
)
SELECT * FROM foo UNION ALL
SELECT * FROM foo;
我收到以下错误:
[XX000][500310] [Amazon](500310) Invalid operation: Relation "spectrum_foo_58abe8db83a3e" already exists Details: ----------------------------------------------- error: Relation "spectrum_foo_58abe8db83a3e" already exists code: 13 ..
这是一个已知问题和/或有什么方法可以解决它(不涉及为每个联合粘贴原始查询)?