생산자로서 Lake Formation에서 관리하는 데이터 공유 사용 - Amazon Redshift

생산자로서 Lake Formation에서 관리하는 데이터 공유 사용

Amazon Redshift가 있으면 AWS Lake Formation 관리형 데이터 공유를 생산자로 사용하여 AWS 계정 및 Amazon Redshift 클러스터 전반에서 실시간 데이터를 안전하게 공유할 수 있습니다. Lake Formation 관리형 데이터 공유는 Amazon Redshift 클러스터의 실시간 데이터를 다른 AWS 계정 및 서비스와 공유할 수 있는 객체입니다.

생산자 클러스터 또는 작업 그룹 관리자는 다음 단계에 따라 Lake Formation Formation에 데이터 공유를 공유하세요.

  1. 클러스터에서 데이터 공유를 생성하고 데이터 공유에 액세스할 수 있도록 AWS Lake Formation에 권한을 부여합니다.

    클러스터 슈퍼 사용자와 데이터베이스 소유자만 datashare를 생성할 수 있습니다. 각 datashare는 생성하는 동안 데이터베이스와 연결됩니다. 해당 데이터베이스의 객체만 해당 datashare에서 공유할 수 있습니다. 동일하거나 다른 세부 수준의 객체를 사용하여 동일한 데이터베이스에 여러 datashare를 생성할 수 있습니다. 클러스터에서 생성할 수 있는 datashare 수에는 제한이 없습니다.

    CREATE DATASHARE salesshare;
  2. 데이터 공유에 객체를 추가합니다. 생산자 클러스터 또는 작업 그룹 관리자는 사용 가능한 데이터 공유 객체를 계속 관리합니다. datashare에 객체를 추가하려면 객체를 추가하기 전에 스키마를 추가합니다. 스키마를 추가할 때 Amazon Redshift는 스키마 아래에 모든 객체를 추가하지 않습니다. 명시적으로 스키마를 추가해야 합니다. 자세한 내용은 ALTER DATASHARE를 참조하세요.

    ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;

    datashare에 뷰를 추가할 수도 있습니다. 지원되는 는 표준 뷰, 후기 바인딩 뷰 및 구체화된 뷰입니다.

    CREATE VIEW public.sales_data_summary_view AS SELECT * FROM public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift;

    ALTER DATASHARE를 사용하여 지정된 스키마에서 스키마, 테이블 및 뷰를 공유합니다. 슈퍼 사용자, datashare 소유자 또는 datashare에 대한 ALTER 또는 ALL 권한이 있는 사용자는 datashare를 변경하여 객체를 추가하거나 제거할 수 있습니다. 데이터베이스 사용자는 객체의 소유자이거나 객체에 대한 SELECT, USAGE 또는 ALL 권한이 있어야 합니다.

    INCLUDENEW 절을 사용하여 지정된 스키마에서 생성된 새 테이블과 뷰를 데이터 공유에 추가합니다. 슈퍼 사용자만 각 datashare-스키마 페어에 대해 이 속성을 변경할 수 있습니다.

    ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare SET INCLUDENEW = TRUE FOR SCHEMA PUBLIC;
  3. 수퍼유저만 각 데이터 공유-스키마 쌍에 대해 이 속성을 변경할 수 있습니다.

    GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '012345678910' VIA DATA CATALOG;

    사용을 취소하려면 다음 명령을 사용하세요.

    REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '012345678910' VIA DATA CATALOG;
  4. aws redshift authorize-data-share API 작업을 사용하여 Lake Formation의 데이터 공유에 대한 액세스 권한을 부여합니다. 이를 통해 Lake Formation은 서비스 계정에서 데이터 공유를 인식하고 데이터 공유에 대한 소비자 연결을 관리할 수 있습니다.

    aws redshift authorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier {"DataCatalog/<consumer-account-id>"}

    Lake Formation에서 관리하는 데이터 공유에서 권한을 제거하려면 aws redshift deauthorize-data-share API 작업을 사용하세요. 이렇게 하면 AWS Lake Formation이 서비스 계정에서 데이터 공유를 인식하고 권한 부여를 제거할 수 있습니다.

    aws redshift deauthorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier {"DataCatalog/<consumer-account-id>"}

    언제든지 생산자 클러스터 또는 작업 그룹 관리자가 더 이상 소비자 클러스터 또는 작업 그룹과 데이터를 공유할 필요가 없다고 판단하면 DROP DATASHARE를 사용하여 데이터 공유를 삭제하거나, 데이터 공유의 인증을 해제하거나, 데이터 공유 권한을 취소할 수 있습니다. Lake Formation의 연결된 권한 및 객체는 자동으로 삭제되지 않습니다.

    DROP DATASHARE salesshare;

    데이터 공유를 관리하도록 Lake Formation 계정에 권한을 부여한 후 Lake Formation 관리자는 공유 데이터 공유를 검색하고 데이터 카탈로그 ARN과 데이터 공유를 연결하고, 데이터 공유에 연결되는 데이터베이스를 AWS Glue Data Catalog 카탈로그에서 생성할 수 있습니다. AWS CLI를 사용하여 데이터 공유를 연결하려면 associate-data-share-consumer 명령을 사용합니다. AWS 리전 간에 데이터 공유를 공유하려면 associate-data-share-consumer 명령에 --region 파라미터를 지정하거나 AWS 콘솔을 사용하여 데이터 소비자를 선택합니다. 다음 예제는 Lake Formation에서 관리하는 데이터 공유를 여러 리전에서 공유하는 방법을 보여줍니다.

    aws redshift associate-data-share-consumer --region <region-1> --data-share-arn 'arn:aws:redshift:us-east-1:12345678912:datashare:035c45ea-61ce-86f0-8b75-19ac6102c3b7/sample_share' --consumer-arn 'arn:aws:glue:<region-1>:111912345678:catalog'

    Lake Formation 관리자는 데이터 공유 내의 객체가 Lake Formation 내의 객체에 매핑되는 방법을 정의하는 로컬 리소스도 생성해야 합니다. 데이터 공유 검색 및 로컬 리소스 생성에 대한 자세한 내용은 Amazon Redshift 데이터 공유의 데이터에 대한 권한 관리를 참조하세요.