Amazon Kinesis를 사용하여 Redshift에 JSON 투입
4309 단어 KinesisKinesisFirehoseredshift
사전 준비
Redshift 작성은 생략합니다.
좋은 기사가 많기 때문에. . .
Redshift에 테이블 만들기
이번에는 이런 테이블을 만들었습니다.
create table logs (
id int not null,
value varchar(30) not null,
created_at timestamp not null
);
Kinesis streams 만들기
이름은 log-stream, Number of shards 는 1로 했습니다.
Firehose 만들기
이름은 log-stream-firehose로 했습니다.
Source에서 Kinesis stream을 선택, 방금 만든 log-stream을 선택해
Step2: Process records
모두 기본적으로. .
Step3: Choose destination
Select destination
Amazon Redshift 선택
Amazon Redshift destination에 미리 준비한 Redshift 정보를 설정한 후
Redshift 보안 그룹을 편집하여 Firehose에서 액세스를 허용합니다.
(파란색 상자에 Firehose IP address가 쓰여 있기 때문에 그것을 허용 해 준다)
intermediate S3 destination
Redshift에 COPY 커맨드로 데이터를 전송하기 전에 한 번 S3에 올리는 곳 같습니다.
이번에는 새롭게 만들었습니다.
Amazon Redshift COPY command
COPY options를 JSON 'auto';
로 설정
Step 4: Configure settings
모두 기본값으로. IAM role도 이번에 새롭게 만들었습니다.
동작 확인
AWS 명령줄 인터페이스를 사용하여 데이터를 등록해 봅니다.
이런 파일 만들기
log.json{
"Records": [
{
"Data": "{\"id\": 12345, \"value\": \"click\", \"created_at\": \"2018-09-05 00:00:00\"}",
"PartitionKey": "124"
}
],
"StreamName": "log-stream"
}
AWS CLI로 데이터 등록
$ aws kinesis put-records --cli-input-json file:///tmp/event.json
이런 값이 돌아오면 성공입니다.
{
"FailedRecordCount": 0,
"Records": [
{
"ShardId": "shardId-000000000000",
"SequenceNumber": "xxxxx"
}
]
}
조금 기다렸다가 Redshift에서 logs 테이블을 선택해 보면. .
select * from logs;
id | value | created_at
-------+-------+---------------------
12345 | click | 2018-09-05 00:00:00
주의점
JSON의 키는 더블 따옴표로 둘러싸여 있습니다.
문제해결
Reference
이 문제에 관하여(Amazon Kinesis를 사용하여 Redshift에 JSON 투입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takayuki_tk/items/20cb843df803e242bf92
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 이런 테이블을 만들었습니다.
create table logs (
id int not null,
value varchar(30) not null,
created_at timestamp not null
);
Kinesis streams 만들기
이름은 log-stream, Number of shards 는 1로 했습니다.
Firehose 만들기
이름은 log-stream-firehose로 했습니다.
Source에서 Kinesis stream을 선택, 방금 만든 log-stream을 선택해
Step2: Process records
모두 기본적으로. .
Step3: Choose destination
Select destination
Amazon Redshift 선택
Amazon Redshift destination에 미리 준비한 Redshift 정보를 설정한 후
Redshift 보안 그룹을 편집하여 Firehose에서 액세스를 허용합니다.
(파란색 상자에 Firehose IP address가 쓰여 있기 때문에 그것을 허용 해 준다)
intermediate S3 destination
Redshift에 COPY 커맨드로 데이터를 전송하기 전에 한 번 S3에 올리는 곳 같습니다.
이번에는 새롭게 만들었습니다.
Amazon Redshift COPY command
COPY options를 JSON 'auto';
로 설정
Step 4: Configure settings
모두 기본값으로. IAM role도 이번에 새롭게 만들었습니다.
동작 확인
AWS 명령줄 인터페이스를 사용하여 데이터를 등록해 봅니다.
이런 파일 만들기
log.json{
"Records": [
{
"Data": "{\"id\": 12345, \"value\": \"click\", \"created_at\": \"2018-09-05 00:00:00\"}",
"PartitionKey": "124"
}
],
"StreamName": "log-stream"
}
AWS CLI로 데이터 등록
$ aws kinesis put-records --cli-input-json file:///tmp/event.json
이런 값이 돌아오면 성공입니다.
{
"FailedRecordCount": 0,
"Records": [
{
"ShardId": "shardId-000000000000",
"SequenceNumber": "xxxxx"
}
]
}
조금 기다렸다가 Redshift에서 logs 테이블을 선택해 보면. .
select * from logs;
id | value | created_at
-------+-------+---------------------
12345 | click | 2018-09-05 00:00:00
주의점
JSON의 키는 더블 따옴표로 둘러싸여 있습니다.
문제해결
Reference
이 문제에 관하여(Amazon Kinesis를 사용하여 Redshift에 JSON 투입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takayuki_tk/items/20cb843df803e242bf92
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이름은 log-stream-firehose로 했습니다.
Source에서 Kinesis stream을 선택, 방금 만든 log-stream을 선택해
Step2: Process records
모두 기본적으로. .
Step3: Choose destination
Select destination
Amazon Redshift 선택
Amazon Redshift destination에 미리 준비한 Redshift 정보를 설정한 후
Redshift 보안 그룹을 편집하여 Firehose에서 액세스를 허용합니다.
(파란색 상자에 Firehose IP address가 쓰여 있기 때문에 그것을 허용 해 준다)
intermediate S3 destination
Redshift에 COPY 커맨드로 데이터를 전송하기 전에 한 번 S3에 올리는 곳 같습니다.
이번에는 새롭게 만들었습니다.
Amazon Redshift COPY command
COPY options를
JSON 'auto';
로 설정Step 4: Configure settings
모두 기본값으로. IAM role도 이번에 새롭게 만들었습니다.
동작 확인
AWS 명령줄 인터페이스를 사용하여 데이터를 등록해 봅니다.
이런 파일 만들기
log.json{
"Records": [
{
"Data": "{\"id\": 12345, \"value\": \"click\", \"created_at\": \"2018-09-05 00:00:00\"}",
"PartitionKey": "124"
}
],
"StreamName": "log-stream"
}
AWS CLI로 데이터 등록
$ aws kinesis put-records --cli-input-json file:///tmp/event.json
이런 값이 돌아오면 성공입니다.
{
"FailedRecordCount": 0,
"Records": [
{
"ShardId": "shardId-000000000000",
"SequenceNumber": "xxxxx"
}
]
}
조금 기다렸다가 Redshift에서 logs 테이블을 선택해 보면. .
select * from logs;
id | value | created_at
-------+-------+---------------------
12345 | click | 2018-09-05 00:00:00
주의점
JSON의 키는 더블 따옴표로 둘러싸여 있습니다.
문제해결
Reference
이 문제에 관하여(Amazon Kinesis를 사용하여 Redshift에 JSON 투입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takayuki_tk/items/20cb843df803e242bf92
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
"Records": [
{
"Data": "{\"id\": 12345, \"value\": \"click\", \"created_at\": \"2018-09-05 00:00:00\"}",
"PartitionKey": "124"
}
],
"StreamName": "log-stream"
}
{
"FailedRecordCount": 0,
"Records": [
{
"ShardId": "shardId-000000000000",
"SequenceNumber": "xxxxx"
}
]
}
select * from logs;
id | value | created_at
-------+-------+---------------------
12345 | click | 2018-09-05 00:00:00
JSON의 키는 더블 따옴표로 둘러싸여 있습니다.
문제해결
Reference
이 문제에 관하여(Amazon Kinesis를 사용하여 Redshift에 JSON 투입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takayuki_tk/items/20cb843df803e242bf92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)