小编Vzz*_*arr的帖子

Amazon Kinesis 1 MB 大小限制解决方法

AWS 文档中所述

base64 编码前记录的数据负载的最大大小可达 1 MiB。

因为我需要处理大小可能大于 1 MB 的记录,所以这个限制可能是一个问题。

是否有任何解决方法可以克服此限制?如果任何人已经实施和使用了任何经过验证的解决方案?(我想避免“重新发明轮子”)

amazon-web-services amazon-kinesis

3
推荐指数
1
解决办法
4669
查看次数

如何显示 Redshift Spectrum(外部架构)GRANTS?

这篇文章对于显示 Redshift GRANTS 很有用,但不会显示外部表/架构上的 GRANTS。

如何显示外部架构(和相关表)权限?

amazon-web-services amazon-redshift amazon-redshift-spectrum

3
推荐指数
1
解决办法
2917
查看次数

如何从 JSON 文件在 Terraform 中声明 AWS IAM 承担角色策略?

我想使用 Terraform 为 AWS IAM 角色配置其承担角色策略。我已经将策略声明为 JSON 文件。

从文档中我了解到模块aws_iam_role是提供 IAM 角色的,但正如我从注释中读到的:

take_role_policy 与标准 IAM 策略非常相似但略有不同,并且不能使用 aws_iam_policy 资源。但是,它可以使用 aws_iam_policy_document 数据源。请参阅上面的示例了解其工作原理。

这意味着我根据aws_iam_policy_document语法严格遵守 IAM 策略声明(这本身要求我手动转换为另一种格式),但我不知道如何从 JSON 文件导入策略来创建 IAM 角色需要 - 背后的原因是该策略非常广泛,我希望它位于单独的 JSON 文件中。

任何人都可以建议如何使用 JSON 文件中声明的策略来声明 IAM 角色吗?

amazon-web-services amazon-iam terraform terraform-provider-aws

3
推荐指数
1
解决办法
4868
查看次数

Redshift SUPER 类型:访问驼峰式大小写字段返回空结果

我正在尝试访问具有驼峰式大小写字段的 SUPER 列的字段,因此类似于:

{"FirstName": "Mario", "LastName": "Maria"}
Run Code Online (Sandbox Code Playgroud)

假设我将此字段存储在 Redshift 中作为 column my_json,然后我将使用以下命令查询它

SELECT my_json.FirstName
FROM my_table
Run Code Online (Sandbox Code Playgroud)

然后我只会得到null结果而不是真正的值。

如何处理这个用例?

json amazon-web-services amazon-redshift

3
推荐指数
1
解决办法
3299
查看次数

无法从 Redshift 删除用户

我正在尝试删除用户表单 Redshift 但它总是失败并显示相同的消息

用户“XXX”不能被删除,因为用户对某个对象有权限;

在谷歌搜索之后,我发现我需要撤销用户的权限,所以我运行了几个撤销查询,但我仍然失败并显示相同的消息:

我运行的查询:

revoke all on schema YYY from XXX;
revoke usage on schema ZZZ from XXX;
revoke all on database LLL from XXX;
Run Code Online (Sandbox Code Playgroud)

知道为什么我仍然收到此失败消息吗?

sql permissions amazon-web-services amazon-redshift

2
推荐指数
2
解决办法
4431
查看次数

pyWriteDynamicFrame:无法识别的方案为空;预期为 s3、s3n 或 s3a [粘合到 Redshift]

在执行 Glue 作业时,在进行必要的转换后,我将 Spark 的结果df写入 Redshift 表,如下所示:

dynamic_df = DynamicFrame.fromDF(df, glue_context, "dynamic_df")

glue_context.write_dynamic_frame.from_jdbc_conf(
    frame=dynamic_df, catalog_connection=args['catalog_connection'],
    connection_options={"dbtable": args['dbschema'] + "." + args['dbtable'], "database": args['database']},
    transformation_ctx="write_my_df")
Run Code Online (Sandbox Code Playgroud)

但我收到了这个异常:

19/08/23 14:29:31 ERROR __main__: Traceback (most recent call last):
File "/mnt/yarn/usercache/root/appcache/application_1572375324962_0001/container_1572375324962_0001_01_000001/pyspark.zip/pyspark/sql/utils.py", line 63, in deco
return f(*a, **kw)
File "/mnt/yarn/usercache/root/appcache/application_1572375324962_0001/container_1572375324962_0001_01_000001/py4j-0.10.7-src.zip/py4j/protocol.py", line 328, in get_return_value
format(target_id, ".", name), value)
py4j.protocol.Py4JJavaError: An error occurred while calling o190.pyWriteDynamicFrame.
: java.lang.IllegalArgumentException: Unrecognized scheme null; expected s3, s3n, or s3a
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我该如何解决?

amazon-redshift apache-spark pyspark aws-glue

2
推荐指数
1
解决办法
4811
查看次数

删除 Redshift 架构中的所有表 - 不删除权限

我有兴趣删除 Redshift 模式中的所有表。即使此解决方案有效

DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
Run Code Online (Sandbox Code Playgroud)

不是为我好,因为它降低架构权限为好。

一个解决方案,如

DO $$ DECLARE
r RECORD;
BEGIN
    -- if the schema you operate on is not "current", you will want to
    -- replace current_schema() in query with 'schematodeletetablesfrom'
    -- *and* update the generate 'DROP...' accordingly.
    FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP
        EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
    END LOOP;
END $$;
Run Code Online (Sandbox Code Playgroud)

正如该线程中所报告的,如何删除 PostgreSQL 数据库中的所有表? 将是理想的。不幸的是,它不适用于 …

sql amazon-web-services amazon-redshift

1
推荐指数
1
解决办法
5544
查看次数

UNLOAD Redshift:追加

我想将Redshift 表中的数据卸载到已经存在的 S3 文件夹中,类似于 Spark 中使用写入选项“ append ”发生的情况(因此,如果目标文件夹已存在,则在目标文件夹中创建新文件)。

我知道 ALLOWOVERWRITE 选项,但这会删除已经存在的文件夹。

Redshift 支持吗?如果不是,建议采用什么方法?(无论如何,我相信这将是一个理想的功能......)

amazon-s3 amazon-web-services amazon-redshift

1
推荐指数
1
解决办法
1480
查看次数

如何在 PySpark 中过滤数组列中的值?

我在 Pyspark 中有一个 ArrayType 列。我只想过滤数组中每一行的值(我不想过滤掉实际的行!)而不使用 UDF。

例如,给定此数据集,其中 A 列为 ArrayType:

|     A      |
______________
|[-2, 1, 7]  |
|[1]         |
|[-4, -1, -3]|
Run Code Online (Sandbox Code Playgroud)

我只想输出正值:

|     A      |
______________
|[1, 7]      |
|[1]         |
|[]          |
Run Code Online (Sandbox Code Playgroud)

apache-spark pyspark

1
推荐指数
1
解决办法
1582
查看次数