Python을 통해 Metabase에 대한 질의 결과 가져오기
개시하다
Pythhon으로 Metabase의 API를 두드려 Metabase가 만든 검색 결과를 얻는 방법의 노트입니다.
컨디션 $sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G14042
$python --version
Python 3.7.3
사전 준비
Metabase
설치 및 시작
공식 문서https://www.metabase.com/start/oss/에 설명된 대로docker run -d -p 3000:3000 --name metabase metabase/metabase
이렇게 하면 Metabase가 현지 환경에서 실행될 수 있습니다.편리합니다!
다만, 일어서기에는 시간이 걸리기 때문에 docker logs -f metabase
시동이 끝나기 전에 보는 것이 좋다.
크롬과 같은 브라우저http://localhost:3000
를 통해 액세스할 수 있습니다.
사용자 작성
사용자 이름: [email protected]
암호:P@ssw0rd
사용자를 작성합니다.
DB
원래는 기존 데이터베이스 정보에 접속해 접속한 뒤 조회를 제출하는 것이었는데 이번에는 샘플로 준비한 자료를 사용해야 해 건너뛰었다.
조회
질의 - 간단한 질문에서 질의를 작성합니다.
다음 그림과 같이 Metabase와 함께 제공되는 Sample Dataset의 ORDERS 테이블에서 출발하여 SELECT를 빠르게 진행합니다.
이때 조회한 번호는 URL의 /question/
의 다음 번호(지금은 1)이다.
이 질의 번호를 사용하여 Pythhon에서 결과를 가져옵니다.
Metabase의 Pytohon 라이브러리
메타베이스는 API 공개https://www.metabase.com/docs/latest/api-documentation.html로, 여기에 요청하면 된다.
파이썬 라이브러리가 몇 개 있으니까 그걸로 해요.
내 조사에 의하면 현재 세 개의 창고가 있다.
#
라이브러리 이름
URL
최종 업데이트(2021년 1월 26일 기준)
1
metabase-api
https://pypi.org/project/metabase-api/ https://github.com/vvaezian/metabase_api_python
2021/01/18
2
metabasepy
https://github.com/mertsalik/metabasepy
2020/10/30
3
metabase-py
https://github.com/STUnitas/metabase-py
2020/5/28
이번에 사용한 것은 최근의 최종 업데이트metabase-api
입니다.
나는 다른 프로그램 라이브러리를 시도하지 않았는데, 아마도 그곳이 비교적 편리할 것이다.pip install metabase-api
에 설치합니다.
파이톤을 통해 획득 run.py
아래 내용에 따라 제작한다.
run.pyfrom metabase_api import Metabase_API
import pandas as pd
mb = Metabase_API('http://localhost:3000', '[email protected]', 'P@ssw0rd')
out = mb.post('/api/card/1/query/json')
df = pd.DataFrame.from_records(out)
print(df.head())
처음에는 메타베이스였어요.도메인 이름, 사용자의 메일 주소 및 암호를 통해 API를 인증합니다.
이후mb.post
조회 결과를 얻습니다.
이는 API 일람https://www.metabase.com/docs/latest/api-documentation.html#post-apicardcard-idqueryexport-format에 따른 것으로, 조회 결과를 얻기 위해 포스터/api/card/:card-id/query/:export-format
로 치면 된다.:card-id
는 조회번호입니다.
결과를 판다스의 DataFrame으로 만들고 싶어서 json 형식으로 형식을 지정했습니다.
out의 내용은 json의 List이기 때문에 pd.DataFrame.from_records
pandas의 DataFrame로 변환합니다.$python run.py
실행한 후에 Metabase에 표시된 조회 결과를 얻었습니다. ID USER_ID
0 1 1
1 2 1
2 3 1
3 4 1
4 5 1
Reference
이 문제에 관하여(Python을 통해 Metabase에 대한 질의 결과 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dyamaguc/items/085b6d1d11c240c98e3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G14042
$python --version
Python 3.7.3
사전 준비
Metabase
설치 및 시작
공식 문서https://www.metabase.com/start/oss/에 설명된 대로docker run -d -p 3000:3000 --name metabase metabase/metabase
이렇게 하면 Metabase가 현지 환경에서 실행될 수 있습니다.편리합니다!
다만, 일어서기에는 시간이 걸리기 때문에 docker logs -f metabase
시동이 끝나기 전에 보는 것이 좋다.
크롬과 같은 브라우저http://localhost:3000
를 통해 액세스할 수 있습니다.
사용자 작성
사용자 이름: [email protected]
암호:P@ssw0rd
사용자를 작성합니다.
DB
원래는 기존 데이터베이스 정보에 접속해 접속한 뒤 조회를 제출하는 것이었는데 이번에는 샘플로 준비한 자료를 사용해야 해 건너뛰었다.
조회
질의 - 간단한 질문에서 질의를 작성합니다.
다음 그림과 같이 Metabase와 함께 제공되는 Sample Dataset의 ORDERS 테이블에서 출발하여 SELECT를 빠르게 진행합니다.
이때 조회한 번호는 URL의 /question/
의 다음 번호(지금은 1)이다.
이 질의 번호를 사용하여 Pythhon에서 결과를 가져옵니다.
Metabase의 Pytohon 라이브러리
메타베이스는 API 공개https://www.metabase.com/docs/latest/api-documentation.html로, 여기에 요청하면 된다.
파이썬 라이브러리가 몇 개 있으니까 그걸로 해요.
내 조사에 의하면 현재 세 개의 창고가 있다.
#
라이브러리 이름
URL
최종 업데이트(2021년 1월 26일 기준)
1
metabase-api
https://pypi.org/project/metabase-api/ https://github.com/vvaezian/metabase_api_python
2021/01/18
2
metabasepy
https://github.com/mertsalik/metabasepy
2020/10/30
3
metabase-py
https://github.com/STUnitas/metabase-py
2020/5/28
이번에 사용한 것은 최근의 최종 업데이트metabase-api
입니다.
나는 다른 프로그램 라이브러리를 시도하지 않았는데, 아마도 그곳이 비교적 편리할 것이다.pip install metabase-api
에 설치합니다.
파이톤을 통해 획득 run.py
아래 내용에 따라 제작한다.
run.pyfrom metabase_api import Metabase_API
import pandas as pd
mb = Metabase_API('http://localhost:3000', '[email protected]', 'P@ssw0rd')
out = mb.post('/api/card/1/query/json')
df = pd.DataFrame.from_records(out)
print(df.head())
처음에는 메타베이스였어요.도메인 이름, 사용자의 메일 주소 및 암호를 통해 API를 인증합니다.
이후mb.post
조회 결과를 얻습니다.
이는 API 일람https://www.metabase.com/docs/latest/api-documentation.html#post-apicardcard-idqueryexport-format에 따른 것으로, 조회 결과를 얻기 위해 포스터/api/card/:card-id/query/:export-format
로 치면 된다.:card-id
는 조회번호입니다.
결과를 판다스의 DataFrame으로 만들고 싶어서 json 형식으로 형식을 지정했습니다.
out의 내용은 json의 List이기 때문에 pd.DataFrame.from_records
pandas의 DataFrame로 변환합니다.$python run.py
실행한 후에 Metabase에 표시된 조회 결과를 얻었습니다. ID USER_ID
0 1 1
1 2 1
2 3 1
3 4 1
4 5 1
Reference
이 문제에 관하여(Python을 통해 Metabase에 대한 질의 결과 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dyamaguc/items/085b6d1d11c240c98e3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker run -d -p 3000:3000 --name metabase metabase/metabase
run.py
아래 내용에 따라 제작한다.run.py
from metabase_api import Metabase_API
import pandas as pd
mb = Metabase_API('http://localhost:3000', '[email protected]', 'P@ssw0rd')
out = mb.post('/api/card/1/query/json')
df = pd.DataFrame.from_records(out)
print(df.head())
처음에는 메타베이스였어요.도메인 이름, 사용자의 메일 주소 및 암호를 통해 API를 인증합니다.이후
mb.post
조회 결과를 얻습니다.이는 API 일람https://www.metabase.com/docs/latest/api-documentation.html#post-apicardcard-idqueryexport-format에 따른 것으로, 조회 결과를 얻기 위해 포스터
/api/card/:card-id/query/:export-format
로 치면 된다.:card-id
는 조회번호입니다.결과를 판다스의 DataFrame으로 만들고 싶어서 json 형식으로 형식을 지정했습니다.
out의 내용은 json의 List이기 때문에
pd.DataFrame.from_records
pandas의 DataFrame로 변환합니다.$python run.py
실행한 후에 Metabase에 표시된 조회 결과를 얻었습니다. ID USER_ID
0 1 1
1 2 1
2 3 1
3 4 1
4 5 1
Reference
이 문제에 관하여(Python을 통해 Metabase에 대한 질의 결과 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dyamaguc/items/085b6d1d11c240c98e3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)