是否有方法根据Glue表的字段创建Redshift表?

0

【以下的问题经过翻译处理】 Athena表可以从拥有基于crawlers的模式的Glue表创建。

是否可以使用Glue表的结构生成与Redshift兼容的CREATE TABLE语句吗?

我在Athena中尝试了SHOW CREATE TABLE encounter;。我尝试将生成的CREATE TABLE语句插入Redshift,但是遇到了语法错误:

ERROR: syntax error at or near "`" Position: 23.

我可以继续检查Athena生成的语句并清理它以符合Redshift要求,例如删除反引号,但我想知道是否有更直接的方法基于Glue表生产Redshift表结构?

这是Athena生成的CREATE TABLE语句:

{
	"period": {
		"start": "2019-11-18T13:53:49-08:00",
		"end": "2019-11-18T14:23:49-08:00"
	},
	"subject": {
		"reference": "Patient/92e36d1e-66a2-4e77-9f50-155f7edf819c",
		"display": "Cyndi533 Bogan287"
	},
	"serviceProvider": {
		"reference": "Organization/3ecb1bdd-03d7-3fd2-b52d-8df2a04f5b0a",
		"display": "SOUTH SHORE SKIN CENTER, LLC"
	},
	"id": "b39745ae-14dd-46b3-9345-2916efa759ad",
	"type": [{
		"coding": [{
			"system": "http://snomed.info/sct",
			"code": "410620009",
			"display": "Well child visit (procedure)"
		}],
		"text": "Well child visit (procedure)"
	}],
	"class": {
		"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
		"code": "AMB"
	},
	"participant": [{
		"period": {
			"start": "2019-11-18T13:53:49-08:00",
			"end": "2019-11-18T14:23:49-08:00"
		},
		"individual": {
			"reference": "Practitioner/c51e847b-fcd0-3f98-98a7-7e4274a2e6f3",
			"display": "Dr. Jacquelyne425 O'Reilly797"
		},
		"type": [{
			"coding": [{
				"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
				"code": "PPRF",
				"display": "primary performer"
			}],
			"text": "primary performer"
		}]
	}],
	"resourceType": "Encounter",
	"status": "finished",
	"meta": {
		"lastUpdated": "2022-04-08T15:40:39.926Z"
	}
}

这是原始的数据(合成数据非真实):

{
	"period": {
		"start": "2019-11-18T13:53:49-08:00",
		"end": "2019-11-18T14:23:49-08:00"
	},
	"subject": {
		"reference": "Patient/92e36d1e-66a2-4e77-9f50-155f7edf819c",
		"display": "Cyndi533 Bogan287"
	},
	"serviceProvider": {
		"reference": "Organization/3ecb1bdd-03d7-3fd2-b52d-8df2a04f5b0a",
		"display": "SOUTH SHORE SKIN CENTER, LLC"
	},
	"id": "b39745ae-14dd-46b3-9345-2916efa759ad",
	"type": [{
		"coding": [{
			"system": "http://snomed.info/sct",
			"code": "410620009",
			"display": "Well child visit (procedure)"
		}],
		"text": "Well child visit (procedure)"
	}],
	"class": {
		"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
		"code": "AMB"
	},
	"participant": [{
		"period": {
			"start": "2019-11-18T13:53:49-08:00",
			"end": "2019-11-18T14:23:49-08:00"
		},
		"individual": {
			"reference": "Practitioner/c51e847b-fcd0-3f98-98a7-7e4274a2e6f3",
			"display": "Dr. Jacquelyne425 O'Reilly797"
		},
		"type": [{
			"coding": [{
				"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
				"code": "PPRF",
				"display": "primary performer"
			}],
			"text": "primary performer"
		}]
	}],
	"resourceType": "Encounter",
	"status": "finished",
	"meta": {
		"lastUpdated": "2022-04-08T15:40:39.926Z"
	}
}
profile picture
专家
已提问 5 个月前3 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

Glue ETL作业可以配置为在目标数据中中创建表。如果你的目标是在Redshift中创建一个表并向其写入数据,请考虑查看下面参考的Glue ETL。它提供了一个选项,让Glue在你的数据目标中创建表,因此你就不必自己编写表结构SQL。你可以通过在Redshift中生成表DDL之后查看模式。

< https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/load-data-from-amazon-s3-to-amazon-redshift-using-aws-glue.html >

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则