検索
ホームページバックエンド開発Python チュートリアルローカル ワークフロー: Airtable へのデータ取り込みのオーケストレーション

Local Workflow: Orchestrating Data Ingestion into Airtable

導入

データのライフサイクル全体は、データを生成し、それを何らかの方法でどこかに保存することから始まります。これを初期段階のデータ ライフサイクルと呼び、ローカル ワークフローを使用して Airtable へのデータの取り込みを自動化する方法を検討します。開発環境のセットアップ、取り込みプロセスの設計、バッチ スクリプトの作成、ワークフローのスケジュール設定について説明します。これにより、物事をシンプルに、ローカル/再現可能に、アクセスしやすく保ちます。
まずはAirtableについてお話しましょう。 Airtable は、スプレッドシートのシンプルさとデータベースの構造を融合した強力で柔軟なツールです。情報の整理、プロジェクトの管理、タスクの追跡に最適で、無料利用枠もあります!

環境を整える

開発環境のセットアップ

このプロジェクトは Python で開発するので、お気に入りの IDE を起動して仮想環境を作成します

# from your terminal
python -m venv <environment_name>
<environment_name>\Scripts\activate
</environment_name></environment_name>

Airtable を使い始めるには、Airtable の Web サイトにアクセスしてください。無料アカウントにサインアップしたら、新しいワークスペースを作成する必要があります。ワークスペースは、関連するすべてのテーブルとデータのコンテナーと考え​​てください。

次に、ワークスペース内に新しいテーブルを作成します。テーブルは基本的に、データを保存するスプレッドシートです。データの構造に一致するようにテーブルのフィールド (列) を定義します。

これはチュートリアルで使用されるフィールドの抜粋です。テキスト日付、および 数値の組み合わせです:

Local Workflow: Orchestrating Data Ingestion into Airtable

スクリプトを Airtable に接続するには、API キーまたはパーソナル アクセス トークンを生成する必要があります。このキーはパスワードとして機能し、スクリプトが Airtable データと対話できるようにします。キーを生成するには、Airtable アカウント設定に移動し、API セクションを見つけて、指示に従って新しいキーを作成します。

*API キーを安全に保管してください。パブリックに共有したり、パブリック リポジトリにコミットしたりしないでください。 *

必要な依存関係 (Python、ライブラリなど) のインストール

次に、requirements.txt をタッチします。この .txt ファイル内に次のパッケージを配置します:

pyairtable
schedule
faker
python-dotenv

ここで pip install -rrequirements.txt を実行して、必要なパッケージをインストールします。

プロジェクト構造の整理

このステップはスクリプトを作成する場所です。.env は認証情報を保存する場所です。autoRecords.py - 定義されたフィールドと ingestData.py : Airtable にレコードを挿入します。

取り込みプロセスの設計: 環境変数

Local Workflow: Orchestrating Data Ingestion into Airtable

# from your terminal
python -m venv <environment_name>
<environment_name>\Scripts\activate
</environment_name></environment_name>

取り込みプロセスの設計: 自動記録

それはいいですね。この従業員データ ジェネレーターのブログ投稿に焦点を当てたサブトピック コンテンツをまとめましょう。

プロジェクト用の現実的な従業員データの生成

従業員データが関係するプロジェクトに取り組む場合、現実的なサンプル データを生成する信頼できる方法があれば役立つことがよくあります。人事管理システム、従業員ディレクトリ、またはその間のものを構築している場合でも、堅牢なテスト データにアクセスできると、開発が合理化され、アプリケーションの復元力が高まります。

このセクションでは、さまざまな関連フィールドを持つランダムな従業員レコードを生成する Python スクリプトについて説明します。このツールは、現実的なデータをアプリケーションに迅速かつ簡単に入力する必要がある場合に貴重な資産となります。

一意の ID の生成

データ生成プロセスの最初のステップは、各従業員レコードの一意の識別子を作成することです。アプリケーションでは各従業員を一意に参照する方法が必要になる可能性が高いため、これは重要な考慮事項です。私たちのスクリプトには、次の ID を生成する簡単な関数が含まれています:

pyairtable
schedule
faker
python-dotenv

この関数は、「N-#####」形式で一意の ID を生成します。数値はランダムな 5 桁の値です。この形式は、特定のニーズに合わせてカスタマイズできます。

ランダムな従業員レコードの生成

次に、従業員レコード自体を生成するコア関数を見てみましょう。 generate_random_records() 関数は、作成するレコードの数を入力として受け取り、辞書のリストを返します。各辞書は、さまざまなフィールドを持つ従業員を表します。

"https://airtable.com/app########/tbl######/viw####?blocks=show"
BASE_ID = 'app########'
TABLE_NAME = 'tbl######'
API_KEY = '#######'

この関数は Faker ライブラリを使用して、名前、電子メール、電話番号、住所などのさまざまな従業員フィールドの現実的なデータを生成します。また、年齢範囲や給与範囲を妥当な値に制限するなど、いくつかの基本的な制約も含まれています。

この関数は辞書のリストを返します。各辞書は Airtable と互換性のある形式で従業員レコードを表します。

Airtable 用のデータを準備する

最後に、prepare_records_for_airtable() 関数を見てみましょう。この関数は、従業員レコードのリストを取得し、各レコードの「フィールド」部分を抽出します。これは、Airtable がデータのインポートに期待する形式です:

def generate_unique_id():
    """Generate a Unique ID in the format N-#####"""
    return f"N-{random.randint(10000, 99999)}"

この関数はデータ構造を簡素化し、生成されたデータを Airtable や他のシステムと統合する際の作業を容易にします。

すべてをまとめる

このデータ生成ツールを使用するには、必要なレコード数を指定してgenerate_random_records() 関数を呼び出し、結果のリストを prepare_records_for_airtable() 関数に渡します。

# from your terminal
python -m venv <environment_name>
<environment_name>\Scripts\activate
</environment_name></environment_name>

これにより、ランダムな従業員レコードが 2 つ生成され、元の形式で印刷され、Airtable に適したフラット形式でレコードが印刷されます。

実行:

pyairtable
schedule
faker
python-dotenv

出力:

"https://airtable.com/app########/tbl######/viw####?blocks=show"
BASE_ID = 'app########'
TABLE_NAME = 'tbl######'
API_KEY = '#######'

生成されたデータを Airtable と統合する

現実的な従業員データの生成に加えて、スクリプトはそのデータを Airtable とシームレスに統合する機能も提供します

Airtable 接続のセットアップ

生成されたデータを Airtable に挿入する前に、プラットフォームへの接続を確立する必要があります。私たちのスクリプトは、pyairtable ライブラリを使用して Airtable API と対話します。まず、Airtable API キー、データを保存するベース ID とテーブル名など、必要な環境変数をロードします。

def generate_unique_id():
    """Generate a Unique ID in the format N-#####"""
    return f"N-{random.randint(10000, 99999)}"

これらの認証情報を使用して、Airtable API クライアントを初期化し、操作したい特定のテーブルへの参照を取得できます。

def generate_random_records(num_records=10):
    """
    Generate random records with reasonable constraints
    :param num_records: Number of records to generate
    :return: List of records formatted for Airtable
    """
    records = []

    # Constants
    departments = ['Sales', 'Engineering', 'Marketing', 'HR', 'Finance', 'Operations']
    statuses = ['Active', 'On Leave', 'Contract', 'Remote']

    for _ in range(num_records):
        # Generate date in the correct format
        random_date = datetime.now() - timedelta(days=random.randint(0, 365))
        formatted_date = random_date.strftime('%Y-%m-%dT%H:%M:%S.000Z')

        record = {
            'fields': {
                'ID': generate_unique_id(),
                'Name': fake.name(),
                'Age': random.randint(18, 80),
                'Email': fake.email(),
                'Department': random.choice(departments),
                'Salary': round(random.uniform(30000, 150000), 2),
                'Phone': fake.phone_number(),
                'Address': fake.address().replace('\n', '\n'),  # Escape newlines
                'Date Added': formatted_date,
                'Status': random.choice(statuses),
                'Years of Experience': random.randint(0, 45)
            }
        }
        records.append(record)

    return records
生成されたデータの挿入

これで接続が設定されたので、前のセクションのgenerate_random_records() 関数を使用して従業員レコードのバッチを作成し、それらを Airtable に挿入できます。

def prepare_records_for_airtable(records):
    """Convert records from nested format to flat format for Airtable"""
    return [record['fields'] for record in records]

prep_for_insertion() 関数は、generate_random_records() によって返されたネストされたレコード形式を、Airtable API が期待するフラット形式に変換する役割を果たします。データの準備が完了したら、table.batch_create() メソッドを使用して、単一の一括操作でレコードを挿入します。

エラー処理とログ記録

統合プロセスが堅牢でデバッグが容易であることを保証するために、いくつかの基本的なエラー処理およびログ機能も組み込まれています。データ挿入プロセス中にエラーが発生した場合、スクリプトはトラブルシューティングに役立つエラー メッセージを記録します。

if __name__ == "__main__":
    records = generate_random_records(2)
    print(records)
    prepared_records = prepare_records_for_airtable(records)
    print(prepared_records)

以前のスクリプトの強力なデータ生成機能とここで示す統合機能を組み合わせることで、Airtable ベースのアプリケーションに現実的な従業員データを迅速かつ確実に入力できます。

バッチスクリプトを使用した自動データ取り込みのスケジュール設定

データ取り込みプロセスを完全に自動化するには、Python スクリプトを定期的に実行するバッチ スクリプト (.bat ファイル) を作成します。これにより、手動介入なしでデータ取り込みが自動的に行われるように設定できます。

ここでは、ingestData.py スクリプトの実行に使用できるバッチ スクリプトの例を示します。

python autoRecords.py

このスクリプトの重要な部分を分析してみましょう:

  1. @echo off: この行は、各コマンドのコンソールへの出力を抑制し、出力をきれいにします。
  2. echo starting Airtable Automated Data Ingestion Service...: この行は、スクリプトが開始されたことを示すメッセージをコンソールに出力します。
  3. cd /d C:UsersbuascPycharmProjectsscrapEngineering: この行は、現在の作業ディレクトリを、ingestData.py スクリプトが配置されているプロジェクト ディレクトリに変更します。
  4. call C:UsersbuascPycharmProjectsscrapEngineeringvenv_airtableScriptsactivate.bat: この行は、必要な Python 依存関係がインストールされている仮想環境をアクティブ化します。
  5. python ingestData.py: この行は、ingestData.py Python スクリプトを実行します。
  6. if %ERRORLEVEL% NEQ 0 (... ): このブロックは、Python スクリプトでエラーが発生したかどうか (つまり、ERRORLEVEL がゼロでないかどうか) をチェックします。エラーが発生した場合は、エラー メッセージが出力され、スクリプトが一時停止されるため、問題を調査できるようになります。

このバッチ スクリプトが自動的に実行されるようにスケジュールするには、Windows タスク スケジューラを使用できます。手順の概要を次に示します:

  1. スタート メニューを開き、「タスク スケジューラ」を検索します。 または Windows R と Local Workflow: Orchestrating Data Ingestion into Airtable
  2. タスク スケジューラで、新しいタスクを作成し、わかりやすい名前を付けます (例: 「Airtable データ インジェスト」)。
  3. [アクション] タブで、新しいアクションを追加し、バッチ スクリプトへのパスを指定します (例: C:UsersbuascPycharmProjectsscrapEngineeringingestData.bat)。
  4. 毎日、毎週、毎月など、スクリプトを実行するスケジュールを構成します。
  5. タスクを保存して有効にします。

Local Workflow: Orchestrating Data Ingestion into Airtable

これで、Windows タスク スケジューラは指定された間隔でバッチ スクリプトを自動的に実行し、Airtable データが手動介入なしで定期的に更新されるようになります。

結論

これは、テスト、開発、さらにはデモンストレーションの目的でも非常に貴重なツールとなる可能性があります。

このガイドでは、必要な開発環境をセットアップする方法、取り込みプロセスを設計する方法、タスクを自動化するバッチ スクリプトを作成する方法、無人実行のワークフローをスケジュールする方法を学習しました。現在、私たちはローカル オートメーションの力を活用してデータ取り込み操作を合理化し、Airtable を活用したデータ エコシステムから貴重な洞察を引き出す方法をしっかりと理解しています。

自動データ取り込みプロセスを設定したので、この基盤に基づいて Airtable データからさらに多くの価値を引き出す方法はたくさんあります。コードを試し、新しいユースケースを探索し、その経験をコミュニティと共有することをお勧めします。

始めるためのアイデアをいくつか紹介します:

  • データ生成をカスタマイズする
  • 取り込まれたデータの活用 [Markdown ベースの探索的データ分析 (EDA)、Tableau、Power BI、Plotly などのツールを使用したインタラクティブなダッシュボードや視覚化の構築、機械学習ワークフローの実験 (離職率の予測やトップパフォーマーの特定)]
  • 他のシステムとの統合 [クラウド機能、Webhook、またはデータ ウェアハウス]

可能性は無限大です!この自動化されたデータ取り込みプロセスをどのように構築し、Airtable データから新しい洞察と価値を引き出すかを見るのが楽しみです。ためらわずに実験し、コラボレーションし、進捗状況を共有してください。私はあなたをサポートするためにここにいます。

完全なコード https://github.com/AkanimohOD19A/scheduling_airtable_insertion を参照してください。完全なビデオ チュートリアルも準備中です。

以上がローカル ワークフロー: Airtable へのデータ取り込みのオーケストレーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PythonスクリプトがUNIXで実行されない可能性がある一般的な理由は何ですか?PythonスクリプトがUNIXで実行されない可能性がある一般的な理由は何ですか?Apr 28, 2025 am 12:18 AM

PythonスクリプトがUNIXシステムで実行できない理由には、次のものが含まれます。1)CHMOD XYOUR_SCRIPT.PYを使用して実行権限を付与する不十分な権限。 2)shebangラインが正しくないか欠落している場合、#!/usr/bin/envpythonを使用する必要があります。 3)環境可変設定が誤っていない場合、OS.Environデバッグを印刷できます。 4)間違ったPythonバージョンを使用して、Shebangラインまたはコマンドラインでバージョンを指定できます。 5)仮想環境を使用して依存関係を分離する依存関係の問題。 6)構文エラー、python-mpy_compileyour_script.pyを使用して検出します。

Pythonアレイを使用することがリストを使用するよりも適切なシナリオの例を挙げてください。Pythonアレイを使用することがリストを使用するよりも適切なシナリオの例を挙げてください。Apr 28, 2025 am 12:15 AM

Pythonアレイの使用は、リストよりも大量の数値データの処理に適しています。 1)配列を保存するメモリを保存します。2)アレイは数値的な値で動作するのが高速です。3)アレイフォースタイプの一貫性、4)アレイはCアレイと互換性がありますが、リストほど柔軟で便利ではありません。

Pythonでリストと配列を使用することのパフォーマンスへの影響は何ですか?Pythonでリストと配列を使用することのパフォーマンスへの影響は何ですか?Apr 28, 2025 am 12:10 AM

listSareのより良い前提条件とmixdatatypes、whilearraysares優れたスナリカル計算砂の砂を大きくしたデータセット。

Numpyは、大きな配列のメモリ管理をどのように処理しますか?Numpyは、大きな配列のメモリ管理をどのように処理しますか?Apr 28, 2025 am 12:07 AM

numpymanagesmemoryforlargearrayseffictificleusing biews、copies、andmemory-mappedfiles.1)rewsinging withotingcopying、directmodifying theoriginalArray.2)copiescanbecreatedwithcopy()methodforpreservingdata.3)Memory-MapplehandLemassiutasedatasetasedatasetasetasetasetasetasedas

モジュールのインポートが必要なのはどれですか:リストまたは配列は?モジュールのインポートが必要なのはどれですか:リストまたは配列は?Apr 28, 2025 am 12:06 AM

listsinpythondonotrequireimportingamodule、whilearrays fromthearraymoduledoneedanimport.1)listsarebuiltin、versatile、andcanholdmixeddatypes.2)araysaremoremory-efficient-fornumerumerumerumerumerumerdatabutでき、対象となるンドベフェフサメタイプ。

どのデータ型をPythonアレイに保存できますか?どのデータ型をPythonアレイに保存できますか?Apr 27, 2025 am 12:11 AM

Pythonlistscanstoreanydatatype,arraymodulearraysstoreonetype,andNumPyarraysarefornumericalcomputations.1)Listsareversatilebutlessmemory-efficient.2)Arraymodulearraysarememory-efficientforhomogeneousdata.3)NumPyarraysareoptimizedforperformanceinscient

Pythonアレイに間違ったデータ型の値を保存しようとするとどうなりますか?Pythonアレイに間違ったデータ型の値を保存しようとするとどうなりますか?Apr 27, 2025 am 12:10 AM

heouttemptemptostoreavure ofthewrongdatatypeinapythonarray、yure counteractypeerror.thisduetothearraymodule'sstricttypeeencultionyを使用します

Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか?Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか?Apr 27, 2025 am 12:03 AM

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター