> ## Documentation Index
> Fetch the complete documentation index at: https://docs.morph-data.io/llms.txt
> Use this file to discover all available pages before exploring further.

# データコネクター

## コネクターを作成する

コネクターを作成することで、DBやSaaSとの接続を行うことができます。
コネクターはクラウド環境、ローカル環境どちらでも作成することができますが、クラウド環境で作成したものを使用することでデプロイ時にもそのままコネクターを使用することができます。

<Tabs>
  <Tab title="ダッシュボード">
    <Steps>
      <Step title="CLIにAPI Keyを設定する">
        [API Key認証](/docs/ja/advanced/api_key)を行い、ローカル環境からMorphのクラウドへアクセスできる設定をします。
      </Step>

      <Step title="コネクターを作成する">
        ダッシュボードの「Connectors」タブからコネクターを作成します。
      </Step>

      <Step title="コネクション名を取得する">
        作成が成功したら、プロジェクト詳細画面からコネクターの使用をアクティブにして、コネクション名を取得します。

        <img src="https://mintcdn.com/queue-4c50ebb3/evgQaQjX53Vch8Y5/assets/images/docs/connection.png?fit=max&auto=format&n=evgQaQjX53Vch8Y5&q=85&s=db158e45fbd8911cf68dbd987dcff6a1" alt="Connection" width="1880" height="527" data-path="assets/images/docs/connection.png" />
      </Step>

      <Step title="SQL/Pythonの中でコネクターを使用する">
        SQLファイルやPythonファイルの中でコネクション名を使用してコネクターを使用します。
        接続方法の詳細は、このページの下部のセクションをご覧ください。

        ```sql theme={"dark"}
        {{
          config(
            connection="connection_name"
          )
        }}

        select * from table_name;
        ```
      </Step>
    </Steps>
  </Tab>

  <Tab title="ローカル">
    <Steps>
      <Step title="pipコマンドでmorphをインストールする">
        `morph init`コマンドを実行してDBの接続情報を`~/.morph/connections.yml`に保存します。
        ここで設定したコネクション名をSQLファイルで使用します。

        ```bash Shell theme={"dark"}
        morph init
        ```
      </Step>

      <Step title="SQL/Pythonの中でコネクターを使用する">
        SQLファイルやPythonファイルの中でコネクション名を使用してコネクターを使用します。
        接続方法の詳細は、このページの下部のセクションをご覧ください。

        ```sql theme={"dark"}
        {{
          config(
            connection="connection_name"
          )
        }}

        select * from table_name;
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Warning>
  ローカル環境とクラウド環境で同じ名前のコネクターが定義されている場合は、ローカル環境のコネクターが優先されます。

  クラウドへデプロイをした後は、クラウド環境に定義されているコネクターのみを使用します。
</Warning>

## DBと接続する

SQLファイルを作成して、データを取得します。`config`関数の中コネクション名を定義することで、接続しているデータベースのSQLの文法を使用してデータを取得することができます。

```sql theme={"dark"}
{{
  config(
    connection="connection_name"
  )
}}

select * from table_name;
```

種類別のDBへの接続は以下を参照してください。

* [Athena](/docs/ja/advanced/connectors/athena)
* [BigQuery](/docs/ja/advanced/connectors/bigquery)
* [SQLServer](/docs/ja/advanced/connectors/mssql)
* [MySQL](/docs/ja/advanced/connectors/mysql)
* [PostgreSQL](/docs/ja/advanced/connectors/postgresql)
* [Redshift](/docs/ja/advanced/connectors/redshift)
* [Snowflake](/docs/ja/advanced/connectors/snowflake)

## SaaSと接続する

Morphでは、SaaSとの連携を用意しています。
連携を使うことにより、認証周りの実装を全てMorphに任せてビジネスロジックの実装に集中をすることができます。

以下のようにして、Pythonで作成したIntegrationからaccess\_tokenを取得します。

```python theme={"dark"}
import pandas as pd

import morph
from morph import MorphGlobalContext
from morph_lib.api import get_auth_token

@morph.func
def get_salesforce_opportunities(context: MorphGlobalContext) -> pd.DataFrame:
    access_token = get_auth_token("salesforce-connection-name")

    # ↓↓↓ call API with access_token ↓↓↓
```

種類別のSaaSへの接続は以下を参照してください。

* [Airtable](/docs/ja/advanced/connectors/airtable)
* [Attio](/docs/ja/advanced/connectors/attio)
* [Freee](/docs/ja/advanced/connectors/freee)
* [HubSpot](/docs/ja/advanced/connectors/hubspot)
* [Intercom](/docs/ja/advanced/connectors/intercom)
* [Linear](/docs/ja/advanced/connectors/linear)
* [Notion](/docs/ja/advanced/connectors/notion)
* [Mailchimp](/docs/ja/advanced/connectors/mailchimp)
* [Salesforce](/docs/ja/advanced/connectors/salesforce)
* [Stripe](/docs/ja/advanced/connectors/stripe)
