🔥알림🔥
① 테디노트 유튜브 - 구경하러 가기!
② LangChain 한국어 튜토리얼 바로가기 👀
③ 랭체인 노트 무료 전자책(wikidocs) 바로가기 🙌
④ RAG 비법노트 LangChain 강의오픈 바로가기 🙌
⑤ 서울대 PyTorch 딥러닝 강의 바로가기 🙌

2 분 소요

본 내용은 Airtable 에서 table에 대해서 데이터를 조회, 추가, 삭제 및 정렬 하는 방법에 대해서 다룹니다. 본 튜토리얼은 airtable의 공식 pyairtable 파이썬 패키지를 활용합니다.

Airtable 이란?

Airtable 메인 화면

CleanShot 2023-02-04 at 03.29.16

Airtable 은 구글 스프레드시트(엑셀) 혹은 테이블 형식으로 데이터를 관리할 수 있는 인터페이스를 제공하며, 사용자가 웹에서 직접 수정 및 업데이트가 가능합니다. Third-party 앱과의 연동성이 좋기 때문에 노코드 자동화에 자주 등장하는 툴이기도 합니다.

주요 특징

  • 쉽고 직관적인 사용성
  • 편리한 데이터베이스 관리
  • Third-party 앱과의 호환성

데이터베이스(테이블) 생성

회원가입 후 “Add a base”를 클릭하여 쉽게 BASE 를 생성할 수 있습니다. Airtable에서 Base의 개념은 하나의 프로젝트 단위의 테이블 묶음 정도로 생각하면 됩니다.

즉, Base > Table 의 관계이며 보통 1개의 Base 아래에 여러 Table을 갖게 되는 구조입니다.

데이터베이스 생성

CleanShot 2023-02-04 at 03.45.12

Base 를 생성했다면, 여러 테이블을 생성할 수 있습니다. 기본으로 테이블 1개가 생성이 되어 있고, Table 탭의 우측 드롭다운 메뉴에서 “Import data” 를 클릭하여 기존 파일 데이터로부터 데이터를 가져올 수 있습니다.

데이터 임포트(import)

CleanShot 2023-02-04 at 03.44.20

데이터를 편집하는 방법은 매우 직관적이며 단순합니다. 각 컬럼의 우측 드롭다운 메뉴에서 필드의 타입을 설정할 수 있습니다. 우측 ”+” 를 눌러 새로운 컬럼을 추가할 수 있습니다.

데이터 편집

CleanShot 2023-02-04 at 03.41.06

뿐만 아니라, 상단의 “Automations” 를 클릭하여 데이터베이스와 연결할 자동화 작업을 설정할 수 있습니다. 예를 들면, “이메일 발송”, “슬랙 메시지 전달”, “구글 독스 생성” 등과 같은 작업을 수행할 수 있습니다.

자동화 기능 설정

CleanShot 2023-02-04 at 03.51.41

PyAirtable 설치

Airtable은 API로 Airtable의 BaseTable 에 정보를 조회하거나 추가, 수정, 삭제할 수 있도록 지원하고 있습니다. 파이썬(Python) API로 호출하기 위해서는 PyAirtable 을 설치해야 합니다.

PyAirtable 설치

pip install pyairtable

PyAirtable의 공식 도큐먼트 주소는 https://pyairtable.readthedocs.io/en/latest/getting-started.html 이며 API 명세와 다양한 예제가 잘 나와 있습니다.

API 토큰 발행

파이썬 패키지 설치가 끝났다면, API 사용을 위한 토큰을 발행합니다. 토큰 발행은 다음의 주소에서 발행할 수 있습니다.

Airtable 토큰 발급 링크

우측 상단 “Create new token” 클릭

CleanShot 2023-02-04 at 03.59.04

앱 이름, 권한, 베이스 설정

CleanShot 2023-02-04 at 03.59.39

Create token 완료

CleanShot 2023-02-04 at 04.01.11

access token 키를 잘 복사하여 보관합니다

CleanShot 2023-02-04 at 04.04.16

base_id, table_name, view_id

먼저, 다루고자 하는 Base의 Table 주소URL를 확인하고 이를 토대로 다음 3가지 (base_id, table_name, view_id) 를 설정합니다.

주소는 브라우저의 URL에서 확인할 수 있습니다.

주소를 먼저 가져옵니다

CleanShot 2023-02-04 at 04.14.20

URL에서 다음 3가지 정보를 확인합니다.

base_id, table_name, view_id

CleanShot 2023-02-04 at 04.12.41

API 활용 예제

pyairtable import 및 token, base_id, table_name 지정

from pyairtable import Table, Base

# https://airtable.com/create/tokens 에서 발급받은 토큰
airtable_token = '발급받은토큰'
# base_id
BASE_ID = '당신의 base_id'
# table_name
TABLE_NAME = '당신의 table_name'

테이블 전체 행 조회 (정렬 X)

table = Table(airtable_token, BASE_ID, TABLE_NAME)
table.all()

테이블 전체 조회시 정렬 적용

table = Table(airtable_token, BASE_ID, TABLE_NAME)
# sort=['컬럼'] 으로 컬럼 기준으로 정렬
table.all(sort=['id'])

마지막 행을 조회 후 행 출력

table = Table(airtable_token, BASE_ID, TABLE_NAME)
# sort=['컬럼'] 으로 정렬 후 마지막 행
last = table.all(sort=['id'])[-1]
# 행 출력
last['fields']

테이블에 하나의 행 추가

# table에 행 추가
table.create({
    'name': '홍길동', 
    'age': 15, 
    'height': 157}
)

테이블에 여러 행 추가

# table에 여러 행 추가
table.create([
    {'name': '홍길동', 
     'age': 15, 
     'height': 157},
    {'name': '김철수', 
     'age': 17, 
     'height': 161}
])

행 삭제

# record_id 는 행 조회시 확인 할 수 있으며 'id' 키로 존재
table.delete('레코드 id')

[참고]

그 밖에 다양한 예제와 API 활용방법은 공식 도큐먼트 에서 확인할 수 있습니다.

댓글남기기