منصوبے کے بارے میں
fakesnow مقامی طور پر جعلی Snowflake ڈیٹا بیس چلانے، موک کرنے اور ٹیسٹ کرنے کا ایک ٹول ہے۔ یہ دو طریقے پیش کرتا ہے: Python کے لیے Snowflake Connector کی ان پروسیس پیچنگ، یا ایک اسٹینڈ اکیلے HTTP سرور جسے کسی بھی زبان کے کنیکٹر استعمال کر سکتے ہیں۔
ان پروسیس پیچنگ (Python): pip سے انسٹال کریں، پھر `fakesnow script.py` کے ذریعے اسکرپٹ چلائیں یا `fakesnow -m pytest` کے ذریعے pytest جیسا ماڈیول چلائیں۔ متبادل طور پر کوڈ میں `fakesnow.patch()` کو کنٹیکسٹ مینیجر کے طور پر استعمال کریں۔ `snowflake.connector.connect` اور `snowflake.connector.pandas_tools.write_pandas` کے معیاری امپورٹس خودکار طور پر پیچ ہو جاتے ہیں؛ `from ... import` نحو استعمال کرنے والے ماڈیولز کو واضح طور پر نامزد کرنا ضروری ہے، مثلاً `fakesnow.patch("mymodule.write_pandas")`۔ پیچنگ صرف موجودہ پروسیس پر لاگو ہوتی ہے، اس لیے ذیلی پروسیسز اور غیر Python کلائنٹس کو سرور کی ضرورت ہوتی ہے۔ ڈیٹا بیس بطور ڈیفالٹ ان میموری ہوتے ہیں اور `db_path` دے کر محفوظ کیے جا سکتے ہیں۔
سرور موڈ: HTTP سرور شروع کرنے کے لیے `fakesnow -s` چلائیں (یا uvx/docker کے ذریعے، کنٹینر پورٹ 64616 پر سنتا ہے)۔ اسے Python پروگرام کے اندر `fakesnow.server()` سے بھی شروع کیا جا سکتا ہے، جو کنکشن kwargs فراہم کرتا ہے اور باہر نکلنے پر سرور روک دیتا ہے۔ پورٹ اور ڈیٹا بیس کی پرسسٹنس/آئسولیشن سیشن پیرامیٹرز جیسے `FAKESNOW_DB_PATH` (بشمول `:isolated:` ویلیو) کے ذریعے ترتیب دی جا سکتی ہے۔ کوئی بھی صارف نام/پاس ورڈ/اکاؤنٹ مجموعہ قبول کیا جاتا ہے؛ README میں Snowflake CLI (config.toml مع `protocol = http`)، Java سے snowflake-jdbc کے ذریعے (URL میں `account` رکھنے اور Arrow کے لیے JVM `--add-opens` کے نوٹس کے ساتھ)، اور Testcontainers کے ذریعے کنکشن کی دستاویز دی گئی ہے۔
pytest فکسچرز `pytest_plugins = "fakesnow.fixtures"` کے ذریعے فراہم کیے جاتے ہیں، جن میں ایک سیشن فکسچر اور ایک `fakesnow_server` فکسچر شامل ہے جو کنکشن kwargs فراہم کرتا ہے۔
کوریج: مکمل طور پر سپورٹ شدہ آئٹمز میں معیاری SQL آپریشنز اور کرسرز، انفارمیشن اسکیما کوئریز، متعدد ڈیٹا بیس، پیرامیٹر بائنڈنگ، ٹیبل کمنٹس، pandas انٹیگریشن بشمول write_pandas، get_result_batches کے ذریعے رزلٹ بیچ کی بازیافت، اور غیر Python کنیکٹرز کے لیے HTTP سرور شامل ہیں۔ جزوی طور پر سپورٹ شدہ: ڈیٹ فنکشنز، ریگولر ایکسپریشن فنکشنز، سیمی اسٹرکچرڈ ڈیٹا آپریشنز، ٹیگز، یوزر مینجمنٹ، اسٹیجز اور PUT، نامزد فائل فارمیٹس، اور S3 ذرائع اور اسٹیجز سے COPY INTO۔ ابھی تک لاگو نہیں: ایکسیس کنٹرول اور اسٹورڈ پروسیجرز۔ README میں انتباہات درج ہیں کہ قطار کی ترتیب غیر متعین ہوتی ہے جب تک ORDER BY مکمل طور پر متعین نہ کیا جائے، اور یہ کہ سپورٹ شدہ SQL بولی حقیقی Snowflake سے زیادہ آزاد ہے، اس لیے کچھ کوئریز مقامی طور پر کام کر سکتی ہیں لیکن حقیقی انسٹینس کے خلاف نہیں۔ COPY INTO معیاری AWS کریڈینشل چین یا متبادل S3 کریڈینشلز کے لیے duckdb CREATE SECRET اسٹیٹمنٹ استعمال کر سکتا ہے۔
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.