tencent cloud

피드백

Table 관리 기능

마지막 업데이트 시간:2021-08-25 11:21:32

    Table 관리 기능 개요

    GooseFS Table 관리 능력을 통해 구조화 데이터를 관리합니다. SparkSQL, Hive, Presto 등 상위 컴퓨팅 애플리케이션에게 데이터베이스 테이블 관리 능력을 제공하고, 현재 Hive MetaStore 연결을 기본 지원합니다. Table 관리 능력은 각종 SQL 엔진이 지정한 데이터 내용을 읽게 하여 효과적으로 빅 데이터 시나리오에서 데이터의 액세스 효율을 높입니다.

    GooseFS Table 관리 능력은 아래 특성을 지원합니다.

    • 메타데이터 레이어의 기술 능력. GooseFS Catalog는 원격 메타데이터 서비스 (Hive MetaStore)의 메타데이터 캐시 서비스를 제공하며, SparkSQL, Hive, SQL Presto 등 SQL 엔진을 쿼리할 때, GooseFS Catalog의 메타데이터 캐시 서비스에 따라, 읽어오는 데이터의 크기, 타깃 데이터의 위치 및 데이터 구조를 확인할 수 있으며, Hive MetaStore와 동일한 능력을 갖고 있습니다.
    • 테이블 레벨 데이터 프리캐싱 능력. GooseFS Catalog는 데이터 테이블과 데이터 스토리지 경로의 대응 관계를 감지할 수 있어 Table 레벨 및 Table Partition 레벨의 캐시 프리패치 능력을 제공하고, 사용자가 사전에 테이블 구조에 따라 데이터를 캐시하여 액세스 성능을 대폭 향상 시킵니다.
    • 크로스 스토리지의 통합 메타데이터 서비스. GooseFS Catalog를 통해 상위 컴퓨팅 애플리케이션을 실행하면 각각 다른 기본 스토리지 시스템에 액세스 가속 능력을 동시에 제공할 수 있습니다. GooseFS Catalog는 스토리지 서비스간의 통합 메타데이터 쿼리 능력을 제공하여 하나의 GooseFS 클라이언트가 Catalog 기능을 활성화하기만 하면 각각 다른 스토리지 시스템을 확인할 수 있습니다. 예: HDFS, COS, CHDFS의 데이터.

    GooseFS Table 의 관리 기능 사용

    GooseFS Table 관리 기능은 goosefs table 명령어 집합을 통해 구현되며, DB의 바인딩과 바인딩 해제, DB 정보 조회, 테이블 정보 조회, 데이터 로딩, 데이터 제거 등 기능을 제공합니다. GooseFS Table 관리 명령어 집합은 아래와 같습니다.

    $ goosefs table
    Usage: goosefs table [generic options]
    [attachdb [-o|--option <key=value>] [--db <goosefs db name>] [--ignore-sync-errors] <udb type> <udb connection uri> <udb db name>]
    [detachdb <db name>]                                      
    [free <dbName> <tableName> [-p|--partition <partitionSpec>]]
    [load <dbName> <tableName> [-g|--greedy] [--replication <num>] [-p|--partition <partitionSpec>]]
    [ls [<db name> [<table name>]]]                           
    [stat <dbName> <tableName>]                               
    [sync <db name>]                                          
    

    상기 명령어 집합의 각 명령어의 기능 설명은 아래와 같습니다.

    • attachdb: 데이터베이스 마운트. 하나의 원격 데이터베이스를 GooseFS에 바인딩하며 현재 Hive MetaStore만 지원합니다.
    • detachdb: 데이터베이스 언마운트. GooseFS에 바인딩된 데이터베이스의 바인딩을 해제합니다.
    • free: 지정 DB.Table의 데이터 캐시 삭제. Partition 세분성을 지원합니다.
    • load: 지정 DB.Table의 데이터 캐시. partition 세분성을 지원하며 replication을 통한 캐시의 복사본 수량 설정을 지원합니다.
    • 1s: 지정 DB 혹은 DB.Table의 메타데이터 정보를 나열합니다.
    • stat: 지정 DB.Table의 파일 수량, 크기, 캐시 백분율을 조회합니다.
    • sync: 지정 DB의 내용을 동기화합니다.
    • transform: 지정 DB에 연결된 Table을 새로운 Table로 전환합니다.
    • transformStatus: Table 전환의 진행 상황을 확인합니다.

    1. DB 마운트

    지정 Table 데이터를 GooseFS 이전으로 프리패치하며 해당하는 DB를 GooseFS에 마운트해야 합니다. 아래 예시는 지정 주소 metastore_host:port의 데이터베이스 goosefs_db_demo를 GooseFS에 마운트 하고, GooseFS 내 해당 DB 이름을 test_db로 설정하는 것을 설명합니다.

    $ goosefs table attachdb --db test_db hive thrift://metastore_host:port goosefs_db_demo
    response of attachdb
    
    주의:

    metastore_host:port는 연결 가능한 임의의 합법 Hive MetaStore 주소로 변경할 수 있습니다.

    2. Table 정보 확인

    데이터베이스 바인딩 후 ls 명령어를 통해 마운트된 DB와 Table 정보를 확인할 수 있습니다. 아래 예시는 test_db의 web_page 테이블 정보를 확인하는 방법을 설명합니다.

    $ goosefs table ls test_db web_page
    OWNER: hadoop
    DBNAME.TABLENAME: testdb.web_page (
    wp_web_page_sk bigint,
    wp_web_page_id string,
    wp_rec_start_date string,
    wp_rec_end_date string,
    wp_creation_date_sk bigint,
    wp_access_date_sk bigint,
    wp_autogen_flag string,
    wp_customer_sk bigint,
    wp_url string,
    wp_type string,
    wp_char_count int,
    wp_link_count int,
    wp_image_count int,
    wp_max_ad_count int,
    )
    PARTITIONED BY (
    )
    LOCATION (
    gfs://metastore_host:port/myiNamespace/3000/web_page
    )
    PARTITION LIST (
    {
    partitionName: web_page
    location: gfs://metastore_host:port/myNamespace/3000/web_page
    }
    )
    

    3. Table의 데이터 프리패치

    Table 프리패치 명령어 전달 후 백그라운드에서 비동기화 작업을 전달하고, GooseFS는 작업 실행 후 하나의 작업 ID를 반환합니다. ‘job stat ’ 명령어를 통해 작업의 실행 상태를 확인할 수 있으며 ‘table stat’ 명령어를 통해 프리패치의 백분율을 확인할 수 있습니다. 프리패치 명령어는 아래와 같습니다.

    $ goosefs table load test_db web_page
    Asynchronous job submitted successfully, jobId: 1615966078836
    

    4. Table 프리패치 상황 확인

    ‘job stat’ 명령어를 통해 Table 프리패치 작업의 진행률을 확인할 수 있습니다. COMPLETED 상태가 되면, 전체 프리패치 프로세스가 완료된 것이며, FAILED 상태일 경우 master.log 파일에서 로그 기록을 확인하여 프리패치 오류 원인을 진단할 수 있습니다.

    $ goosefs job stat 1615966078836
    COMPLETED
    

    Table 프리패치 완료 후 stat 명령어를 통해 지정 Table의 현황을 확인할 수 있습니다.

    $ goosefs table stat test_db web_page
    detail
    

    5. Table 릴리스

    아래 명령어를 통해 GooseFS에서 지정 Table 데이터 캐시를 릴리스할 수 있습니다.

    $ goosefs table ls test_db web_page
    detail
    

    6. DB 언마운트

    아래 명령어를 통해 GooseFS에서 지정 DB를 언마운트 할 수 있습니다.

    $ goosefs table detachdb test_db
    detail
    
    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원