Re:dash API를 사용하여 Re:dash로 이동

4881 단어 루비redash

개요



옛날 혼잡한 Re:dash에서 새로운 Re:dash 환경으로 쿼리를 이사한다.

Re:dash를 혼잡한 결과 다양한 문제에 직면했기 때문에 새롭게 Re:dash 환경을 시작해 이사하기로 결정했다.
기존 환경을 최선을 다해 좋은 느낌으로 만드는 것도 생각할 수 있지만 이용자가 적다(나와 디렉터 1명만)&query 이외 거기까지 이용하지 않은 배경이 있어, 새로운 환경 세워 이사하는 것이 빠른 것은 라고 하는 시도를 했습니다.

아티팩트



깨달은 것



구 환경의 query를 모두 취득해, 이용중의 것만 새로운 환경에 모두 임포트 한다.

본가의 문서는 GET계는 알기 쉽습니다만 등록계는 대부분 고전했습니다.

포인트만



API 키 유형



Re:dash의 인증에는 User API KeyQuery API Key 의 종류가 있습니다.Query API Key 는 그 쿼리만으로 한정된 권한의 API Key가 되어 있어 본가의 문서에서는 가능한 한 이쪽을 사용하도록(듯이) 추천하고 있습니다.
=> 이번은 Query의 전건 취득을 실시하는 것과 등록을 실시하기 위해 User API Key 를 이용합니다. 관리 화면에서 쉽게 Regenerate 할 수 있으므로 다른 곳에서 이용하지 않으면 실행 후 Regenerate 해 두면 좋을지도 모릅니다.

인증 방식



공식 문서에서는 query parameter로 api_key를 설정하는 방법이 쓰여져 있습니다.
$ curl https://{your redash domain}/api/queries?api_key={your user api key}

이것과는 다른 방식으로 Authorization Header에 넣어 검증하는 방식도 있는 것 같습니다.
query parameter로 건네주는 것보다 이쪽이 코드가 심플해지므로 이번은 이쪽을 채용.
$ curl -H "Authorization: Key {your user api key}" https://{your redash domain}/api/queries

그 밖에도 request.view_args.get("token") 로 건네주는 방법이 있는 것 같고, Flask의 기능인 것 같습니다만 제대로 확인하고 있지 않습니다. 그렇다고는 해도 엔드포인트에 api key 넣는 수법답게 헤더에 넣는 편이 심플할까라고 생각해서 과시하지 않습니다.

cf : htps : // 기주 b. 이 m/게 t다다 sh/레다 sh/bぉb/2992c382d12바0db23dd1886b38c00c0d8b67cc/레다 sh/맞다 치치치온/__아니 t__. py#L142-L154

post /api/queries가 통과하지 못했습니다...



에러도 거기까지 상세가 상세하게 돌아오지 않기 때문에 비교적 손 탐구로 해 왔습니다.
=> Re:dash의 관리 화면에서 요청 정보를 참고로 정보를 좁혀 가면 알기 쉽다고 생각합니다.

이번에는 이하의 파라미터를 던지기로 했습니다.
  • name: query의 제목
  • query: 실제 SQL
  • description: 잘 모르겠다...(관리 화면에서라면 등록할 수 없는 것인가?
  • schedule : 정기 실행 정보
  • data_source_id : 데이터 소스 id (이것은 신구에서 일치하는 것은 아니기 때문에 map에서 대응표를 씹었습니다.

    뒤쫓습니다만 이쪽변 보면 파라미터에 대해 쓰여졌습니다. 위의 것이 필수이고 그 이외는 optional 같네요.
    htps : // 기주 b. 이 m/게 t레다 sh/레다 sh/bぉb/2992c382d12바0db23dd1886b38c00c0d8b67cc/레다 sh/단 dぇrs/쿠에리에 s. py#L330-L342
            """
            Create a new query.
            :<json number data_source_id: The ID of the data source this query will run on
            :<json string query: Query text
            :<json string name:
            :<json string description:
            :<json string schedule: Schedule interval, in seconds, for repeated execution of this query
            :<json object options: Query options
            .. _query-response-label:
    
            .........
    
            """
    

    실행 후에 모두 unpublish 상태로 이었지만 아무래도 고정으로 draft 상태가 되는 것 같습니다. .
    htps : // 기주 b. 이 m/게 t레다 sh/레다 sh/bぉb/0에 1587아 0687838b934c90c2b066아아 0아아 7db0아 py#L257

    Re:dash API와 싸울 때의 마음가짐



    우선 전제로 공식 문서 이외의 비공식? API가 너무 많았습니다 ....

    Re:dash의 API는 여기에 정리되었습니다.
    htps : // 기주 b. 이 m/게 t레다 sh/레다 sh/bぉb/0에1587아0687838b934c90c2b066아에0아아7db0아f83/레다 sh/단dぇrs/아피. py

    이 중에서 그런 엔드포인트를 찾아 **Resources 클래스를 특정한다.
    그리고는 그 클래스로 전건 검색되어 드릴다운 되어 해당의 엔드포인트의 구현을 찾는다.
    => 대체로 코멘트에 필요한 파라미터를 기재해 줍니다.

    멋진 Re:dash생명을 good luck!

    참고



    htps : // Reda sh. 이오 / 헬프 / 우세 r-gui / / g 라치 온 s-an d-api / api
    h tps:// 퀵했다. 작은 m / 사츠키 츠카사 / MS / 18012b7 베d4 곁 C437
  • 좋은 웹페이지 즐겨찾기