برنامه نویسی

اتصال PHP و PostgreSQL: گسترش ادغام های بازه زمانی

PostgreSQL مدتهاست که بخاطر طراحی زبان-آگنوستیک خود مورد ستایش قرار می گیرد-اما وقتی صحبت از توسعه دنیای واقعی می شود ، هر اکوسیستم زبانی انتظارات خاص خود را نسبت به نحوه عملکرد پایگاه داده ها دارد.

به همین دلیل ما در حال گسترش تلاش های ادغام خود هستیم و از پشتیبانی درجه یک برای PHP هنگام استفاده از PostgreSQL با TimescaledB شروع می کنیم. هدف ما: Timescale را به یک قسمت یکپارچه و اصطلاحات از پشته خود تبدیل کنید – مهم نیست که در چه زبانی کار می کنید.


PHP یک زبان سرور همه کاره و آسان برای یادگیری با ویژگی های توسعه وب داخلی ، اکوسیستم گسترده ، ادغام پایگاه داده قوی و پشتیبانی عالی جامعه است و آن را برای برنامه های وب پویا ایده آل می کند. با ادغام آن با PostgreSQL و TimescaledB ، ما توسعه دهندگان را قادر می سازیم تا برنامه های کارآمد ، قابل اعتماد و محور را با سهولت بسازند.


نحوه اتصال PHP و PostgreSQL

SQL جالب است ، اما در پایان روز ، توسعه دهندگان ترجیح می دهند زبان برنامه نویسی مورد علاقه خود را بنویسند. توبیاس پری ، که بسیار درگیر اکوسیستم لاراول است ، ادغام PHP و PostgreSQL ما را هدایت می کند.

بیایید نگاهی به تنظیم ساده ادغام PHP بیندازیم.

return new class extends Migration
{
    public function up(): void
    {
        Schema::createExtensionIfNotExists('timescaledb');

        Schema::create('visits', function (Blueprint $table) {
            $table->identity();
            $table->bigInteger('website_id');
            $table->text('url');
            $table->float('duration');
            $table->timestampTz('created_at');

            $table->primary(['id', 'created_at']);
            $table->index(['website_id', 'created_at']);

            $table->timescale(
                new CreateHypertable('created_at', '1 day'),
                new CreateReorderPolicyByIndex('website_id', 'created_at'),
                new EnableCompression(segmentBy: 'website_id'),
                new CreateCompressionPolicy('3 days'),
                new CreateRetentionPolicy('1 year'),
                new EnableChunkSkipping('id'),
            );
        });

        Schema::continuousAggregate('visits_agg', function(CaggBlueprint $table) {
            $table->as("
                SELECT
                    time_bucket('1 hour', created_at) AS bucket,
                    website_id,
                    url,
                    SUM(duration) AS duration
                FROM visits
                GROUP BY bucket, website_id, url
            ");
            $table->realtime();
            $table->index(['website_id','url']);

            $table->timescale(
                new CreateRefreshPolicy('5 minutes', '1 days', '2 hours'),
                new EnableCompression(),
                new CreateCompressionPolicy('2 days'),
            );
        });
    }
};


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/368495p3rt87cs46g41m.webp)

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اگر این را دوست دارید ، در نظر بگیرید که به پروژه یک ستاره GitHub بدهید! ⭐ همچنین نکات و اطلاعات ادغام بیشتری را پیدا خواهید کرد.

علاوه بر ادغام PHP/PostgreSQL ، Tobias در حال تولید یک دوره جدید با عنوان “ساخت سریع تجزیه و تحلیل – بازه زمانی Learn” است. با ما همراه باشید!


چرا ادغام های خاص زبان مهم است

در حالی که TimescaledB با هر زبانی که به PostgreSQL متصل می شود ، کار می کند ، ما اعتقاد داریم که فراتر از سازگاری اساسی است. ادغام های خاص زبان تعدادی از مزایا را ارائه می دهد:

  • ** پیاده سازی های اصطلاحات ** که از بهترین شیوه های جامعه پیروی می کنند
  • تجربه توسعه دهنده ساده با الگوهای آشنا و ابزار
  • بهینه سازی عملکرد متناسب با ORM ها و رانندگان خاص زبان
  • مستنداتی که به زبان شما صحبت می کند، با مثال های مربوطه و موارد استفاده

هدف ما فقط این نیست که با پشته خود سازگار باشیم بلکه این به یک پسوند اساسی و طبیعی آن تبدیل می شود.

آیا می خواهید ادغام خود را ایجاد کنید؟ راهنمای ادغام را بخوانید.


آیا در حال ایجاد ادغام برای TimescaledB به زبان مورد نظر خود هستید؟ ما دوست داریم در مورد آن بشنویم! پروژه خود را به اشتراک بگذارید یا مستقیماً به تیم اکوسیستم ما دسترسی پیدا کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا