Lark Sheets コネクター

Lark Sheets コネクターを使用すると、Presto で Lark Sheets スプレッドシートを読み取ることができます。

Lark アプリ

このコネクターには、Lark Sheets API にアクセスするために Lark アプリが必要です。

  1. Lark Open Platform (グローバルユーザー向け) または Feishu Open Platform (中国のユーザー向け) の [**カスタムアプリを作成**] ボタンをクリックして Lark アプリを作成します。アプリを作成するときに カスタム アプリ を選択します。**資格情報と基本情報** ページから app idapp secret を取得して覚えておきます。

  2. **権限とスコープ** ページで、アプリに シートの表示、コメント、エクスポート の権限を付与します。また、**アプリのリリース** ページでアプリの新しいリリースを公開して、権限を有効にします。

設定

etc/catalog/larksheets.properties を作成して、Lark Sheets コネクターを larksheets カタログとしてマウントし、プロパティを適宜置き換えます

connector.name=lark-sheets
app-domain=FEISHU
app-id=example_app_id
app-secret-file=/path/to/app-secret.json

以下のように app-secret.json を作成します

{"app-secret": "abcdefghijklmnopqrstuvwxyzabcdef"}

次の設定プロパティが利用可能です

プロパティ名

説明

app-domain

Lark Open Platform で作成した場合は LARK、それ以外の場合は FEISHU を使用します

app-id

Lark Open Platform または Feishu Open Platform で利用可能なアプリ ID

app-secret-file

アプリのシークレットを含む JSON ファイルへのパス

クエリモデル

コネクターでは、Lark スプレッドシートが Presto スキーマにマッピングされ、スプレッドシート内の各シートが Presto テーブルにマッピングされます。

次のようなクエリを実行して、スプレッドシートとスキーマのマッピングを作成します。

CREATE SCHEMA my_ss WITH (TOKEN = 'shtcnBf5pg4BNSkwV2Ku5xwW9Pf')

token プロパティは、スプレッドシートの URL の最後のパスセグメントから取得されます。https://{lark_site_domain}/sheets/{token}?sheet={sheet_id} のパターンを使用します。たとえば、https://test-ch80md45anra.feishu.cn/sheets/shtcnBf5pg4BNSkwV2Ku5xwW9Pf?sheet=MT1p4I のスプレッドシートの場合、shtcnBf5pg4BNSkwV2Ku5xwW9Pf がトークンです。

その後、スプレッドシートのすべてのシート (タブ) が、スキーマ内のテーブルに自動的にマッピングされます。

SHOW TABLES FROM my_ss

各テーブルの名前はシートのタイトルから取得され、列はヘッド行 (シートの最初の行) から推論されます。シートのメタデータは、次のようなクエリを通じて一覧表示できます。

SELECT * FROM my_ss."$sheets"

クエリステートメントでは、テーブルを次のような方法で指定できます。

-- by sheet title
SELECT * FROM my_ss."number_text"

-- by sheet index
SELECT * FROM my_ss."$0"

-- by sheet id
SELECT * FROM my_ss."@MT1p4I"

列の推論に関しては、ヘッド行に空白の値を持つ列は無視されます。列名が重複するシートはクエリできません。

セキュリティモデル

**リンク共有** を有効にしたスプレッドシートのみをクエリできます。

スキーマは、デフォルトでは作成者のみが表示および操作できます。スキーマを他のユーザーに表示できるようにするには、次のように作成します。

CREATE SCHEMA my_ss WITH (TOKEN = 'shtcnBf5pg4BNSkwV2Ku5xwW9Pf', PUBLIC = true)