Babelfish와 함께 Aurora PostgreSQL 확장 사용 - Amazon Aurora

Babelfish와 함께 Aurora PostgreSQL 확장 사용

Aurora PostgreSQL은 다른 AWS 서비스와의 작업을 위한 확장을 제공합니다. 이는 데이터 가져오기 또는 내보내기를 위해 DB 클러스터와 함께 Amazon S3를 사용하는 것과 같은 다양한 사용 사례를 지원하는 선택적 확장입니다.

  • Amazon S3 버킷에서 Babelfish DB 클러스터로 데이터를 가져오려면 aws_s3 Aurora PostgreSQL 확장을 설정합니다. 이 확장을 사용하면 Aurora PostgreSQL DB 클러스터에서 Amazon S3 버킷으로 데이터를 내보낼 수도 있습니다.

  • AWS Lambda은(는) 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda 함수를 사용하여 DB 인스턴스의 이벤트 알림 처리와 같은 작업을 수행할 수 있습니다. Lambda에 대한 자세한 내용은 AWS Lambda 개발자 안내서AWS Lambda란 무엇입니까?를 참조하세요. Babelfish DB 클러스터에서 Lambda 함수를 호출하려면 aws_lambda Aurora PostgreSQL 확장을 설정합니다.

Babelfish 클러스터에 대해 이러한 확장을 설정하려면 먼저 내부 Babelfish 사용자에게 확장을 로드할 수 있는 권한을 부여해야 합니다. 권한을 부여한 후 Aurora PostgreSQL 확장을 로드할 수 있습니다.

Babelfish DB 클러스터에서 Aurora PostgreSQL 확장 사용 설정

aws_s3 또는 aws_lambda 확장을 로드하려면 Babelfish DB 클러스터에 필요한 권한을 부여해야 합니다.

다음 절차에서는 psql PostgreSQL 명령줄 도구를 사용하여 DB 클러스터에 연결합니다. 자세한 내용은 psql을 사용하여 DB 클러스터에 연결 단원을 참조하십시오. pgAdmin을 사용할 수도 있습니다. 세부 정보는 pgAdmin을 사용하여 DB 클러스터에 연결을 참조하세요.

이 절차는 aws_s3aws_lambda를 차례로 로드합니다. 이러한 확장 중 하나만 사용하려면 둘 다 로드할 필요가 없습니다. aws_commons 확장은 각각에 필요하며 출력에 표시된 대로 기본적으로 로드됩니다.

Aurora PostgreSQL 확장에 대한 권한으로 Babelfish DB 클러스터 설정
  1. Babelfish DB 클러스터에 연결합니다. Babelfish DB 클러스터를 생성할 때 지정한 "마스터" 사용자(-U)의 이름을 사용합니다. 기본값(postgres)은 예제에 표시되어 있습니다.

    대상 LinuxmacOS, 또는Unix:

    psql -h your-Babelfish.cluster.444455556666-us-east-1.rds.amazonaws.com \ -U postgres \ -d babelfish_db \ -p 5432

    Windows의 경우:

    psql -h your-Babelfish.cluster.444455556666-us-east-1.rds.amazonaws.com ^ -U postgres ^ -d babelfish_db ^ -p 5432

    명령은 사용자 이름(-U)의 암호를 입력하라는 프롬프트로 응답합니다.

    Password:

    DB 클러스터의 사용자 이름(-U)에 대한 암호를 입력합니다. 성공적으로 연결하면 다음과 비슷한 출력이 표시됩니다.

    psql (13.4) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help. postgres=>
  2. 내부 Babelfish 사용자에게 확장을 생성하고 로드할 수 있는 권한을 부여합니다.

    babelfish_db=> GRANT rds_superuser TO master_dbo; GRANT ROLE
  3. aws_s3 확장 생성 및 로드 aws_commons 확장이 필요하며 aws_s3이 설치되면 자동으로 설치됩니다.

    babelfish_db=> create extension aws_s3 cascade; NOTICE: installing required extension "aws_commons" CREATE EXTENSION
  4. aws_lambda 확장 생성 및 로드

    babelfish_db=> create extension aws_lambda cascade; CREATE EXTENSION babelfish_db=>

Amazon S3에서 Babelfish 사용

Babelfish DB 클러스터에 사용할 Amazon S3 버킷이 아직 없는 경우 하나 생성할 수 있습니다. 사용하려는 Amazon S3 버킷에 대해 액세스 권한을 제공합니다.

Amazon S3 버킷을 사용하여 데이터를 가져오거나 내보내기 전에 다음 일회성 단계를 완료하세요.

Amazon S3 버킷에 대한 Babelfish DB 인스턴스의 액세스 설정
  1. 필요한 경우 Babelfish 인스턴스용 Amazon S3 버킷을 생성합니다. 이렇게 하려면 Amazon Simple Storage Service 사용 설명서버킷 생성 지침을 따르세요.

  2. Amazon S3 버킷에 파일을 업로드합니다. 이렇게 하려면 Amazon Simple Storage Service 사용 설명서버킷에 객체 추가 단계를 따르세요.

  3. 필요에 따라 권한을 설정합니다.

    • Amazon S3에서 데이터를 가져오려면 Babelfish DB 클러스터에 버킷 액세스 권한이 필요합니다. AWS Identity and Access Management(IAM) 역할을 사용하고 클러스터의 해당 역할에 IAM 정책을 연결하는 것이 좋습니다. 이렇게 하려면 IAM 역할을 사용해 Amazon S3 버킷에 액세스 단원의 절차를 따르세요.

    • Babelfish DB 클러스터에서 데이터를 내보내려면 클러스터에 Amazon S3 버킷에 대한 액세스 권한이 부여되어야 합니다. 가져오기와 마찬가지로 IAM 역할 및 정책을 사용하는 것이 좋습니다. 이렇게 하려면 Amazon S3 버킷에 대한 액세스 권한 설정 단원의 절차를 따르세요.

이제 Babelfish DB 클러스터에서 aws_s3 확장과 함께 Amazon S3를 사용할 수 있습니다.

Amazon S3에서 Babelfish로 데이터 가져오기 및 Amazon S3로 Babelfish 데이터 내보내기
  1. Babelfish DB 클러스터와 함께 aws_s3 확장을 사용합니다.

    이때 PostgreSQL 컨텍스트에 있는 테이블을 참조해야 합니다. 즉, [database].[schema].[tableA]라는 Babelfish 테이블로 가져오려면 aws_s3 함수에서 해당 테이블을 database_schema_tableA로 참조합니다.

  2. 다음 표와 같이 aws_s3 확장 및 Amazon S3를 사용할 때 PostgreSQL 이름 지정을 사용하여 Babelfish 테이블을 참조해야 합니다.

Babelfish 테이블

Aurora PostgreSQL 테이블

database.schema.table

database_schema_table

Aurora PostgreSQL과 함께 Amazon S3를 사용하는 방법에 대해 자세히 알아보려면 PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터Aurora PostgreSQL DB 클러스터에서 Amazon S3로 데이터 내보내기 섹션을 참조하세요.

AWS Lambda와 함께 Babelfish 사용

aws_lambda 확장이 Babelfish DB 클러스터에 로드된 후 이 절차에 따라 Lambda에 DB 클러스터에 대한 액세스 권한을 부여해야 Lambda 함수를 호출할 수 있습니다.

Lambda와 작동하도록 Babelfish DB 클러스터에 대한 액세스 설정

이 절차에서는 AWS CLI를 사용하여 IAM 정책, 역할을 생성하고 이를 Babelfish DB 클러스터와 연결합니다.

  1. Babelfish DB 클러스터에서 Lambda에 대한 액세스를 허용하는 IAM 정책을 생성합니다.

    aws iam create-policy --policy-name rds-lambda-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToExampleFunction", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:aws-region:444455556666:function:my-function" } ] }'
  2. 정책이 런타임에 수임할 수 있는 IAM 역할을 생성합니다.

    aws iam create-role --role-name rds-lambda-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
  3. 책을 역할에 연결합니다.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::444455556666:policy/rds-lambda-policy \ --role-name rds-lambda-role --region aws-region
  4. Babelfish DB 클러스터에 역할을 연결합니다.

    aws rds add-role-to-db-cluster \ --db-cluster-identifier my-cluster-name \ --feature-name Lambda \ --role-arn arn:aws:iam::444455556666:role/rds-lambda-role \ --region aws-region

이러한 태스크를 완료한 후 Lambda 함수를 호출할 수 있습니다. AWS Lambda를 사용하여 Aurora PostgreSQL DB 클러스터에 대해 AWS Lambda를 설정하는 방법에 대한 자세한 내용과 예는 2단계: Aurora PostgreSQL DB 클러스터 및 AWS Lambda에 대한 IAM 구성 섹션을 참조하세요.

Babelfish DB 클러스터에서 Lambda 함수 호출

AWS Lambda는 Java, Node.js, Python, Ruby 및 기타 언어로 작성된 기능을 지원합니다. 함수가 호출될 때 텍스트를 반환하면 Babelfish DB 클러스터에서 이를 호출할 수 있습니다. 다음 예는 인사말을 반환하는 자리 표시자 python 함수입니다.

lambda_function.py import json def lambda_handler(event, context): #TODO implement return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!')

현재 Babelfish는 JSON을 지원하지 않습니다. 함수가 JSON을 반환하는 경우 래퍼를 사용하여 JSON을 처리합니다. 예를 들어, 앞에 표시된 lambda_function.py가 Lambda에 my-function으로 저장되어 있다고 가정해 보겠습니다.

  1. psql 클라이언트 또는 pgAdmin 클라이언트를 사용하여 Babelfish DB 클러스터에 연결합니다. 자세한 내용은 psql을 사용하여 DB 클러스터에 연결 단원을 참조하십시오.

  2. 래퍼를 생성합니다. 이 예에서는 SQL용 PostgreSQL의 절차적 언어인 PL/pgSQL을 사용합니다. 자세한 내용은 PL/pgSQL–SQL 절차적 언어를 참조하세요.

    create or replace function master_dbo.lambda_wrapper() returns text language plpgsql as $$ declare r_status_code integer; r_payload text; begin SELECT payload INTO r_payload FROM aws_lambda.invoke( aws_commons.create_lambda_function_arn('my-function', 'us-east-1') ,'{"body": "Hello from Postgres!"}'::json ); return r_payload ; end; $$;

    이제 이 함수는 Babelfish TDS 포트(1433) 또는 PostgreSQL 포트(5433)에서 실행할 수 있습니다.

    1. PostgreSQL 포트에서 이 함수 호출

      SELECT * from aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function', 'us-east-1'), '{"body": "Hello from Postgres!"}'::json );

      출력은 다음과 유사합니다.

      status_code | payload | executed_version | log_result -------------+-------------------------------------------------------+------------------+------------ 200 | {"statusCode": 200, "body": "\"Hello from Lambda!\""} | $LATEST | (1 row)
    2. TDS 포트에서 이 기능을 호출하려면 SQL Server sqlcmd 명령줄 클라이언트를 사용하여 포트에 연결합니다. 세부 정보는 SQL Server 클라이언트 도구를 사용하여 DB 클러스터에 연결을 참조하세요. 연결되면 다음을 실행합니다.

      1> select lambda_wrapper(); 2> go

      이 명령은 다음과 비슷한 출력을 반환합니다.

      {"statusCode": 200, "body": "\"Hello from Lambda!\""}

Aurora PostgreSQL과 함께 Lambda를 사용하는 방법에 대해 자세히 알아보려면 Aurora PostgreSQL DB 클러스터에서 AWS Lambda 함수 호출 섹션을 참조하세요. Lambda 함수 작업에 대한 자세한 내용은 AWS Lambda 개발자 안내서Lambda 시작하기를 참조하세요.

Babelfish 에서 pg_stat_statements 사용

Babelfish for Aurora PostgreSQL은 3.3.0에서 pg_stat_statements 확장을 지원합니다. 자세한 내용은 pg_stat_statements를 참조하세요.

Aurora PostgreSQL에서 지원하는 이 확장에 대한 자세한 내용은 확장 버전을 참조하세요.

pg_stat_statements 확장 만들기

pg_stat_statements를 활성화하려면 쿼리 식별자 계산을 켜야 합니다. 이 작업은 파라미터 그룹에서 compute_query_idon 또는 auto로 설정되어 있으면 자동으로 수행됩니다. compute_query_id 파라미터의 기본값은 auto입니다. 이 기능을 켜려면 이 확장도 생성해야 합니다. 다음 명령을 사용하여 T-SQL 엔드포인트에서 확장을 설치하세요.

1>EXEC sp_execute_postgresql 'CREATE EXTENSION pg_stat_statements WITH SCHEMA sys';

다음 쿼리를 사용하여 쿼리 통계에 액세스할 수 있습니다.

postgres=>select * from pg_stat_statements;
참고

설치 중에 확장의 스키마 이름을 제공하지 않으면 기본적으로 확장이 퍼블릭 스키마에 생성됩니다. 액세스하려면 아래와 같이 스키마 한정자와 함께 대괄호를 사용해야 합니다.

postgres=>select * from [public].pg_stat_statements;

PSQL 엔드포인트에서 확장을 생성할 수도 있습니다.

확장 승인

기본적으로 승인 없이 T-SQL 데이터베이스 내에서 수행된 쿼리의 통계를 볼 수 있습니다.

다른 사람이 만든 쿼리 통계에 액세스하려면 pg_read_all_stats PostgreSQL 역할이 있어야 합니다. 아래에 설명된 단계에 따라 GRANT pg_read_all_stats 명령을 생성합니다.

  1. T-SQL에서는 내부 PG 역할 이름을 반환하는 다음 쿼리를 사용합니다.

    SELECT rolname FROM pg_roles WHERE oid = USER_ID();
  2. rds_superuser 권한으로 Babelfish for Aurora PostgreSQL 데이터베이스에 연결하고 다음 명령을 사용합니다.

    GRANT pg_read_all_stats TO <rolname_from_above_query>

T-SQL 엔드포인트에서:

1>SELECT rolname FROM pg_roles WHERE oid = USER_ID(); 2>go
rolname ------- master_dbo (1 rows affected)

PSQL 엔드포인트에서:

babelfish_db=# grant pg_read_all_stats to master_dbo;
GRANT ROLE

pg_stat_statements 뷰를 사용하여 쿼리 통계에 액세스할 수 있습니다.

1>create table t1(cola int); 2>go 1>insert into t1 values (1),(2),(3); 2>go
(3 rows affected)
1>select userid, dbid, queryid, query from pg_stat_statements; 2>go
userid dbid queryid query ------ ---- ------- ----- 37503 34582 6487973085327558478 select * from t1 37503 34582 6284378402749466286 SET QUOTED_IDENTIFIER OFF 37503 34582 2864302298511657420 insert into t1 values ($1),($2),($3) 10 34582 NULL <insufficient privilege> 37503 34582 5615368793313871642 SET TEXTSIZE 4096 37503 34582 639400815330803392 create table t1(cola int) (6 rows affected)

쿼리 통계 재설정

pg_stat_statements_reset()을 사용하여 지금까지 pg_stat_statements에서 수집한 통계를 재설정할 수 있습니다. 자세한 내용은 pg_stat_statements를 참조하세요. 현재 PSQL 엔드포인트를 통해서만 지원됩니다. rds_superuser 권한을 사용하여 Babelfish for Aurora PostgreSQL에 연결하려면 다음 명령을 사용하세요.

SELECT pg_stat_statements_reset();

제한 사항

  • 현재 T-SQL 엔드포인트를 통해서는 pg_stat_statements()가 지원되지 않습니다. 통계를 수집할 때는 pg_stat_statements 뷰를 사용하는 것이 좋습니다.

  • 일부 쿼리는 Aurora PostgreSQL 엔진으로 구현된 T-SQL 파서에 의해 다시 작성될 수 있습니다. pg_stat_statements 뷰에는 원래 쿼리가 아닌 다시 작성된 쿼리가 표시됩니다.

    select next value for [dbo].[newCounter];

    위의 쿼리는 pg_stat_statements 뷰에서 다음과 같이 다시 작성됩니다.

    select nextval($1);
  • 문의 실행 흐름에 따라 일부 쿼리는 pg_stat_statements에서 추적되지 않고 뷰에 표시되지 않을 수 있습니다. 여기에 포함되는 문은 use dbname, goto, print, raise error, set, throw, declare cursor입니다.

  • CREATE LOGIN 및 ALTER LOGIN 문의 경우 쿼리 및 쿼리 ID가 표시되지 않습니다. 권한이 충분하지 않다고 표시됩니다.

  • pg_stat_statements 뷰에는 항상 아래 두 항목이 포함됩니다. 이 두 항목은 sqlcmd 클라이언트가 내부적으로 실행하기 때문입니다.

    • SET QUOTED_IDENTIFIER OFF

    • SET TEXTSIZE 4,096

Babelfish에서 pgvector 사용

오픈 소스 확장인 pgvector를 사용하면 Postgres 데이터베이스 내에서 직접 유사한 데이터를 검색할 수 있습니다. Babelfish는 이제 버전 15.6 및 16.2부터 이 확장을 지원합니다. 자세한 내용은 pgvector 오픈 소스 설명서를 참조하세요.

필수 조건

pgvector 기능을 활성화하려면 다음 방법 중 하나를 사용하여 sys 스키마에 확장을 설치하세요.

  • sqlcmd 클라이언트에서 다음 명령을 실행합니다.

    exec sys.sp_execute_postgresql 'CREATE EXTENSION vector WITH SCHEMA sys';
  • babelfish_db에 연결하고 psql 클라이언트에서 다음 명령을 실행합니다.

    CREATE EXTENSION vector WITH SCHEMA sys;
참고

pgvector 확장을 설치한 후에는 설정한 새 데이터베이스 연결에서만 해당 벡터 데이터 유형을 사용할 수 있습니다. 기존 연결에서는 새 데이터 유형을 인식하지 못합니다.

지원되는 기능

Babelfish는 T-SQL 기능을 확장하여 다음을 지원합니다.

  • 저장

    Babelfish는 이제 벡터 데이터 유형 호환 구문을 지원하여 T-SQL 호환성을 개선합니다. pgvector를 사용하여 데이터를 저장하는 방법에 대한 자세한 내용은 Storing을 참조하세요.

  • 쿼리

    Babelfish는 벡터 유사성 연산자를 포함하도록 T-SQL 표현식 지원을 확장합니다. 그러나 다른 모든 쿼리의 경우 표준 T-SQL 구문이 여전히 필요합니다.

    참고

    T-SQL은 배열 유형을 지원하지 않으며 데이터베이스 드라이버에는 배열 유형을 처리하는 인터페이스가 없습니다. 해결 방법으로 Babelfish는 텍스트 문자열(varchar/nvarchar)을 사용하여 벡터 데이터를 저장합니다. 예를 들어 벡터 값 [1,2,3]을 요청하면 Babelfish는 '[1,2,3]' 문자열을 응답으로 반환합니다. 필요에 따라 애플리케이션 수준에서 이 문자열을 구문 분석하고 분할할 수 있습니다.

    pgvector를 사용하여 데이터를 쿼리하는 방법에 대한 자세한 내용은 Querying을 참조하세요.

  • 인덱싱

    T-SQL Create Index는 이제 USING INDEX_METHOD 구문을 지원합니다. 이제 인덱스를 만들 때 특정 열에 사용할 유사성 검색 연산자를 정의할 수 있습니다.

    또한 문법이 필수 열에 대한 벡터 유사성 연산을 지원하도록 확장되었습니다(column_name_list_with_order_for_vector 문법 확인).

    CREATE [UNIQUE] [clustered] [COLUMNSTORE] INDEX <index_name> ON <table_name> [USING vector_index_method] (<column_name_list_with_order_for_vector>) Where column_name_list_with_order_for_vector is: <column_name> [ASC | DESC] [VECTOR_COSINE_OPS | VECTOR_IP_OPS | VECTOR_L2_OPS] (COMMA simple_column_name [ASC | DESC] [VECTOR_COSINE_OPS | VECTOR_IP_OPS | VECTOR_L2_OPS])

    pgvector를 사용하여 데이터를 인덱싱하는 방법에 대한 자세한 내용은 Indexing을 참조하세요.

  • 성능

    • T-SQL 엔드포인트에서 쿼리 계획을 디버깅하는 데 SET BABELFISH_STATISTICS PROFILE ON을 사용합니다.

    • T-SQL에서 지원되는 set_config 함수를 사용하여 max_parallel_workers_get_gather를 늘립니다.

    • 대략적인 검색에 IVFFlat을 사용합니다. 자세한 내용은 IVFFlat을 참조하세요.

    pgvector를 사용하여 성능을 개선하는 방법에 대한 자세한 내용은 Performance를 참조하세요.

제한 사항

  • Babelfish는 하이브리드 검색에 전체 텍스트 검색을 지원하지 않습니다. 자세한 내용은 Hybrid Search를 참조하세요.

  • Babelfish는 현재 재인덱싱 기능을 지원하지 않습니다. 그러나 여전히 PostgreSQL 엔드포인트를 사용하여 재인덱싱이 가능합니다. 자세한 내용은 Vacuuming을 참조하세요.

Babelfish와 함께 Amazon Aurora 기계 학습 사용

Amazon Aurora 기계 학습과 통합하면 Babelfish for Aurora PostgreSQL DB 클러스터의 기능을 확장할 수 있습니다. 이 원활한 통합을 통해 각각 고유한 기계 학습 요구 사항을 해결하도록 맞춤화된 Amazon Comprehend, Amazon SageMaker, Amazon Bedrock과 같은 다양하고 강력한 서비스에 액세스할 수 있습니다.

Babelfish 사용자는 Aurora 기계 학습을 사용할 때 T-SQL 구문 및 의미 체계에 대한 기존 지식을 사용할 수 있습니다. Aurora PostgreSQL에 대한 AWS 설명서에 나와 있는 지침을 따르세요. 자세한 내용은 Aurora PostgreSQL과 함께 Amazon Aurora 기계 학습 사용 단원을 참조하십시오.

사전 조건

  • Aurora 기계 학습을 사용하도록 Babelfish for Aurora PostgreSQL DB 클러스터를 설정하기 전에 관련 요구 사항과 사전 조건을 이해해야 합니다. 자세한 내용은 Aurora PostgreSQL과 함께 Aurora 기계 학습을 사용할 때 요구 사항 단원을 참조하십시오.

  • Postgres 엔드포인트 또는 sp_execute_postgresql 저장 프로시저를 사용하여 aws_ml 확장을 설치해야 합니다.

    exec sys.sp_execute_postgresql 'Create Extension aws_ml'
    참고

    현재 Babelfish는 Babelfish 내에서 sp_execute_postgresql을 사용한 캐스케이드 작업을 지원하지 않습니다. aws_mlaws_commons를 사용하기 때문에 Postgres 엔드포인트를 사용하여 별도로 설치해야 합니다.

    create extension aws_common;

aws_ml 함수를 사용한 T-SQL 구문 및 의미 체계 처리

다음 예시는 T-SQL 구문과 의미 체계가 Amazon ML 서비스에 적용되는 방법을 설명합니다.

예 : aws_bedrock.invoke_model - Amazon Bedrock 함수를 사용하는 간단한 쿼리
aws_bedrock.invoke_model( model_id varchar, content_type text, accept_type text, model_input text) Returns Varchar(MAX)

다음 예제는 invoke_model을 사용하여 Bedrock에 대한 Anthropic Claude 2 모델을 간접 호출하는 방법을 보여줍니다.

SELECT aws_bedrock.invoke_model ( 'anthropic.claude-v2', -- model_id 'application/json', -- content_type 'application/json', -- accept_type '{"prompt": "\n\nHuman: You are a helpful assistant that answers questions directly and only using the information provided in the context below. \nDescribe the answerin detail.\n\nContext: %s \n\nQuestion: %s \n\nAssistant:","max_tokens_to_sample":4096,"temperature" :0.5,"top_k":250,"top_p":0.5,"stop_sequences":[]}' -- model_input );
예 : aws_comprehend.detect_sentiment - Amazon Comprehend 함수를 사용하는 간단한 쿼리
aws_comprehend.detect_sentiment( input_text varchar, language_code varchar, max_rows_per_batch int) Returns table (sentiment varchar, confidence real)

다음 예시는 Amazon Comprehend 서비스를 간접 호출하는 방법을 보여줍니다.

select sentiment from aws_comprehend.detect_sentiment('This is great', 'en');
예 : aws_sagemaker.invoke_endpoint - Amazon SageMaker 함수를 사용하는 간단한 쿼리
aws_sagemaker.invoke_endpoint( endpoint_name varchar, max_rows_per_batch int, VARIADIC model_input "any") -- Babelfish inherits PG's variadic parameter type Rerurns Varchar(MAX)

model_input은 VARIADIC으로 표시되고 유형이 'any'이므로 사용자는 길이 및 데이터 유형과 관계없이 목록을 함수에 전달할 수 있으며, 이 함수는 모델에 대한 입력 역할을 합니다. 다음 예시는 Amazon SageMaker 서비스를 간접 호출하는 방법을 보여줍니다.

SELECT CAST (aws_sagemaker.invoke_endpoint( 'sagemaker_model_endpoint_name', NULL, arg1, arg2 -- model inputs are separate arguments ) AS INT) -- cast the output to INT

Aurora PostgreSQL과 함께 Aurora 기계 학습을 사용하는 방법에 대한 자세한 내용은 Aurora PostgreSQL과 함께 Amazon Aurora 기계 학습 사용 섹션을 참조하세요.

제한 사항

  • Babelfish는 배열 생성을 허용하지 않지만 배열을 나타내는 데이터는 처리할 수 있습니다. 배열을 반환하는 aws_bedrock.invoke_model_get_embeddings와 같은 함수를 사용하면 결과가 배열 요소가 포함된 문자열로 전달됩니다.