Lark Sheets コネクター¶
Lark Sheets コネクターを使用すると、Presto で Lark Sheets スプレッドシートを読み取ることができます。
Lark アプリ¶
このコネクターには、Lark Sheets API にアクセスするために Lark アプリが必要です。
Lark Open Platform (グローバルユーザー向け) または Feishu Open Platform (中国のユーザー向け) の [**カスタムアプリを作成**] ボタンをクリックして Lark アプリを作成します。アプリを作成するときに
カスタム アプリ
を選択します。**資格情報と基本情報** ページからapp id
とapp secret
を取得して覚えておきます。**権限とスコープ** ページで、アプリに
シートの表示、コメント、エクスポート
の権限を付与します。また、**アプリのリリース** ページでアプリの新しいリリースを公開して、権限を有効にします。
設定¶
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"}
次の設定プロパティが利用可能です
プロパティ名 |
説明 |
---|---|
|
Lark Open Platform で作成した場合は |
|
Lark Open Platform または Feishu Open Platform で利用可能なアプリ ID |
|
アプリのシークレットを含む 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)