Amazon Redshift 및 Dbeaver를 사용한 공간 검색

10790 단어 redshiftqgisawsdbeaver

아마존 레드와 DBeaver로 공간 검색을 해보도록 하겠습니다.🎉


이번에는 AWS에서 제공하는 클라우드 데이터 창고DBeaver에 연결Amazon Redshift하고 위치 데이터 가져오기와 실행 공간 기능을 시도합니다!

미리 위치 데이터 준비


이전에 QGIS를 사용하여 shapefile 형식으로 랜덤점(100만 개의 파란색)과 다각형을 준비했는데 공간 검색(3개의 노란색)에 사용됩니다. 이것은 Amazon Redshift가 지원하는 표준입니다.
  • QGIS #065 - Create random points in a specified area

  • 또한 Amazon Redshift를 가져올 수 있도록 S3에 데이터 세트를 업로드합니다.

    아마존 레드 이동 그룹 만들기


    우선 아마존 레드 클러스터를 만들 것입니다.
    AWS 콘솔에서 아마존 레드 이동 선택→ 떨기떨기→ 클러스터 만들기를 클릭합니다.

    클러스터 이름, 무료 평가판, 사용자 이름 및 암호 설정→ 클러스터 만들기를 클릭합니다.

    일정 시간 후에 그룹을 만들 것입니다.

    이로써 Amazon 레드 클러스터 생성 완료👍

    역할 및 공용 액세스 구성


    다음은 Amazon Redshift에서 S3에 접근하는 역할 설정과 DBeaver에서 Amazon Redshift에 연결하는 공공 접근 설정을 설정합니다.
    S3에 액세스할 역할을 만듭니다.

    Amazon Redshift의 클러스터 세부 정보 화면에서 만든 역할을 지정합니다.

    작업 클릭→ 아마존 레드 이동 그룹 상세 정보 화면의 '공공 접근 가능한 설정 변경' 을 누르십시오.

    공개 방문 허용→ 를 클릭하여 변경 내용을 저장합니다.

    활성화되었는지 확인합니다.

    Amazon Red Group 세부 정보 화면에서 보안 그룹 클릭→ 인바운드 규칙 추가 및 유형 빨간색 이동으로 설정→ 규칙 저장을 클릭합니다.

    인바운드 규칙이 구성되었는지 확인합니다.

    이렇게 하면 역할 및 공용 액세스 구성이 완료됩니다.👍

    Dbeaver를 사용하여 위치 데이터 가져오기


    이제 DBeaver를 사용하여 Amazon Redshift에 연결하고 위치 데이터를 가져옵니다.
    Dbeaver를 사용하여 Amazon Redshift에 연결합니다.호스트 이름(클러스터 엔드포인트), 포트, 데이터베이스 이름, 사용자 이름, 암호 및 역할 이름을 설정합니다.

    랜덤 포인트 (100만 점) 를 가져오겠습니다.미리 테이블을 만들고 가져올 shapefile의 역할과 목표를 지정한 다음 실행합니다.
    CREATE TABLE points (
       wkb_geometry GEOMETRY,
       id BIGINT
      );
    
    COPY points FROM 's3://redshift-geo-data/points.shp'
    FORMAT SHAPEFILE
    CREDENTIALS 'aws_iam_role=arn:aws:iam::xxxxxxx:role/redshift-geo-role-2112';
    

    데이터를 가져오면 지도에서 정보를 볼 수 있습니다.

    세 개의 다각형을 가져와 공간 검색을 시도해 봅시다.미리 테이블을 만들고 가져올 shapefile의 목표와 역할을 지정한 다음 실행합니다.
    CREATE TABLE polygon (
       wkb_geometry GEOMETRY,
       id BIGINT
      );
    
    COPY polygon FROM 's3://redshift-geo-data/polygon.shp'
    FORMAT SHAPEFILE
    CREDENTIALS 'aws_iam_role=arn:aws:iam::xxxxxxx:role/redshift-geo-role-2112';
    

    데이터를 가져오면 지도에서 정보를 볼 수 있습니다.

    Dbeaver에서 위치 데이터 가져오기 완료👍

    운행 공간 함수


    마지막으로 Amazon Redshift에서 실행spatial functions해 보겠습니다.일반적인 예로 ST AsGeoJSON을 사용하여 데이터를 GeoJSON 형식으로 변환하고 ST In을 사용하여 100만 개의 점에서 다각형 내의 점을 추출하는 공간 함수를 실행합니다.
    먼저 ST AsGeoJSON을 사용하여 데이터를 GeoJSON 형식으로 변환합니다.
    SELECT ST_AsGeoJSON(wkb_geometry) FROM public.polygon;
    
    데이터가 GeoJSON 형식으로 출력되었습니다!

    그런 다음 ST in을 사용하여 다각형 내의 점을 추출합니다.
    SELECT public.points.id, public.points.wkb_geometry FROM public.points, public.polygon WHERE ST_Within(public.points.wkb_geometry, public.polygon.wkb_geometry);
    
    데이터는 다각형 내부에서만 출력됩니다!

    그런 다음 ST in을 사용하여 다각형의 점 수를 추출합니다.
    SELECT COUNT(*) FROM public.points, public.polygon WHERE ST_Within(public.points.wkb_geometry, public.polygon.wkb_geometry);
    
    다각형의 계수'5167점'만 출력!

    마지막으로 공간 검색 결과가 QGIS 사용한 검색 결과와 일치하는지 확인하고 싶습니다.
  • QGIS #076 - Data selection in spatial search
  • 우리는 같은'5167점'을 받았다!

    Amazon Redshift 및 Dbeaver를 사용하여 공간 검색 가능👍


    Amazon Redshift와 DBeaver를 사용하면 위치 데이터를 가져올 수 있는지 확인하고 Amazon Redshift를 사용하여 공간 검색을 실행합니다.그것은 미래에 위치 데이터 분석에 성공적으로 사용될 것으로 보인다.
    처음에, 나는 이 서비스에서 제공하는 조회 편집기 V2를 사용하려고 시도했지만, 지금은 위치 데이터 가져오기나 공간 기능을 지원하지 않는 것 같다.만약 장래에 그것을 지원한다면, 그것은 더욱 쉽게 사용할 수도 있고, Amazon Redshift Serverless 와 함께 사용해도 더욱 쉬워질 수도 있으며, 후자의 미리보기 버전은 주간에 발표될 것이다👍

    좋은 웹페이지 즐겨찾기