

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# Amazon Redshift의 데이터 공유에서 데이터베이스 만들기
<a name="writes-creating-database"></a>

Amazon Redshift를 사용하면 데이터 공유를 사용하여 데이터베이스를 만든 후 생산자 클러스터에서 데이터 공유 전반에 걸쳐 데이터를 쿼리하여 실시간 데이터를 복사하거나 전송하지 않고도 안전하게 액세스할 수 있습니다. 다음 단계에서는 Amazon Redshift 환경에서 데이터베이스 설정에 대한 세부 정보를 다룹니다.

------
#### [ Console ]

데이터 공유에서 데이터 쿼리를 시작하기 전에 데이터 공유에서 데이터베이스를 만들어야 합니다. 지정된 datashare에서 데이터베이스를 하나만 생성할 수 있습니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **클러스터(Clusters)**를 선택한 다음 클러스터를 선택합니다. 클러스터 세부 정보 페이지가 나타납니다.

1. [**Datashare(Datashares)**]를 선택합니다. datashare 목록이 나타납니다.

1. [**다른 클러스터의 datashare(Datashares from other clusters)**] 섹션에서 [**데이터베이스에 연결(Connect to database)**]을 선택합니다. 자세한 내용은 [데이터베이스로 연결](connect-database-console.md) 섹션을 참조하세요.

1. 데이터베이스를 생성하려는 datashare를 선택하고 [**datashare에서 데이터베이스 생성(Create database from datashare)**]을 선택합니다. datashare에서 데이터베이스 생성 페이지가 나타납니다.

1. [**데이터베이스 이름(Database name)**]에서 데이터베이스 이름을 지정합니다. 데이터베이스 이름은 1\$164자의 영숫자(소문자만)여야 하며 예약어일 수 없습니다.

1. **생성(Create)**을 선택합니다.

데이터베이스를 만든 후 소비자 관리자가 권한을 부여, 승인 및 연결한 경우 데이터베이스의 데이터를 쿼리하거나 쓰기 작업을 수행할 수 있습니다.

------
#### [ API ]

소비자 관리자로서 읽기 목적으로 데이터를 공유하려면 다음 단계를 수행합니다.

1. 사용할 수 있는 datashare를 나열하고 datashare의 내용을 봅니다. 자세한 내용은 [DESC DATASHARE](r_DESC_DATASHARE.md) 및 [SHOW DATASHARES](r_SHOW_DATASHARES.md) 섹션을 참조하세요.

   다음 예에서는 지정된 생산자 네임스페이스의 인바운드 datashare 정보를 보여줍니다. 소비자 관리자로 DESC DATASHARE를 실행할 때 인바운드 데이터 공유를 보려면 NAMESPACE 옵션을 지정해야 합니다.

   ```
   DESC DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
   
   
    producer_account  |          producer_namespace          | share_type | share_name | object_type |           object_name           |   include_new
   -------------------+--------------------------------------+------------+------------+-------------+---------------------------------+------------------
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | table       | public.tickit_users_redshift    |     
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | table       | public.tickit_venue_redshift    |     
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | table       | public.tickit_category_redshift |
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | table       | public.tickit_date_redshift     |
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | table       | public.tickit_event_redshift    |
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | table       | public.tickit_listing_redshift  |
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | table       | public.tickit_sales_redshift    |
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | schema      | public                          |    
    123456789012      | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND    | salesshare | view        | public.sales_data_summary_view  |
   ```

   클러스터 슈퍼 사용자만 이 작업을 수행할 수 있습니다. SVV\$1DATASHARES를 사용하여 datashare를 보고 SVV\$1DATASHARE\$1OBJECTS를 사용하여 datashare 내의 객체를 볼 수도 있습니다.

   다음 예에서는 소비자 클러스터의 인바운드 datashare를 보여줍니다.

   ```
   SHOW DATASHARES LIKE 'sales%';
   
   
    share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account |          producer_namespace
   ------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------
    salesshare |             |                 |                   | INBOUND    |            |         t           |           |   123456789012   | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d
   ```

1. Datashare 슈퍼 사용자는 datashare를 참조하는 로컬 데이터베이스를 생성할 수 있습니다. 자세한 내용은 [데이터베이스 생성](r_CREATE_DATABASE.md) 섹션을 참조하세요.

   ```
   CREATE DATABASE sales_db FROM DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
   ```

   로컬 데이터베이스의 객체에 대한 액세스를 보다 세밀하게 제어하려면 데이터베이스를 만들 때 WITH PERMISSIONS 절을 사용하세요. 이렇게 하면 4단계에서 데이터베이스의 객체에 객체 수준 권한을 부여할 수 있습니다.

   ```
   CREATE DATABASE sales_db WITH PERMISSIONS FROM DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
   ```

   [SVV\$1REDSHIFT\$1DATABASES](r_SVV_REDSHIFT_DATABASES.md) 뷰를 쿼리하여 datashare에서 생성한 데이터베이스를 볼 수 있습니다. 그러나 소비자 클러스터의 로컬 데이터베이스에 연결하고 데이터베이스 간 쿼리를 수행하여 데이터 공유에서 만들어진 데이터베이스의 데이터를 쿼리할 수 있습니다.
**참고**  
기존 datashare에서 생성된 데이터베이스 객체 위에 datashare를 생성할 수 없습니다. 그러나 데이터를 소비자 클러스터의 별도 테이블에 복사하고 필요한 처리를 수행한 다음 생성된 새 객체를 공유할 수 있습니다.

   Amazon Redshift 콘솔을 사용하여 datashare에서 데이터베이스를 생성할 수도 있습니다. 자세한 내용은 [datashare에서 데이터베이스 생성](query-datashare-console.md#create-database-from-datashare-console) 섹션을 참조하세요.

------