Trình phân tích cú pháp SQL Python

Tôi đang làm việc trên một Khung SQL mới mạnh mẽ bằng Python có tên là SQLGlot cho phép bạn viết các truy vấn bằng một phương ngữ và chạy nó bằng một phương ngữ khác, xử lý quá trình dịch mã của UDF, Định dạng Thời gian và thậm chí cả những khác biệt về cấu trúc như kết nối chéo so với chế độ xem bên phát nổ. SQLGlot được lấy cảm hứng rất nhiều từ Apache Canxit và tôi hy vọng rằng người dùng Python sẽ được hưởng lợi từ việc có một công cụ mạnh mẽ để phân tích cú pháp, dịch mã và thậm chí tối ưu hóa SQL. https. //lnkd. in/dnwKwqDk Vì vậy, cho dù bạn chỉ đang cố định dạng SQL của mình hay cần thực hiện đại số boolean để chuyển đổi các vị từ thành dạng chuẩn liên hợp, tôi hy vọng SQLGlot có thể trợ giúp. #sql #duckdb #spark #python #dataengineering #analytics #calcite

GitHub - tobymao/sqlglot. Trình phân tích cú pháp SQL Python và Trình biên dịch

github. com

713 25 Bình luận

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Ying Wang

Kiến trúc sư dữ liệu

6 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Nghe có vẻ rất hứa hẹn. Bạn có bản dịch giữa PostgreSQL SQL và BigQuery Standard SQL không? . P

Thích

Hồi đáp

1 Phản ứng

Yuri Bogomolov

Kỹ sư dữ liệu nhân viên cấp cao tại Robinhood

6 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Làm tốt lắm, Toby. Muốn có một công cụ như thế trong một thời gian. Tò mò bạn nhắm mục tiêu chế độ Spark SQL nào [ANSI hoặc kế thừa]? . Bạn có định hỗ trợ nhiều phiên bản Spark không?

Thích

Hồi đáp

3 lượt phản hồi 4 lượt phản hồi

Guilherme Banhudo

Trưởng nhóm Kỹ thuật & Phân tích Dữ liệu

5 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Làm tốt lắm Tobias [Toby] Mao. Chỉ tò mò thôi, điều gì đã truyền cảm hứng cho bạn để phát triển một công cụ như vậy?

Thích

Hồi đáp

1 Phản ứng 2 Phản ứng

Richard Wesley

Tư vấn và phát triển phân tích dữ liệu

5 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Cảm ơn Toby. Sau nhiều năm làm việc tại Tableau để phát triển một hệ thống nội bộ để thực hiện việc này, tôi có thể chứng minh điều này có giá trị và [không may] cần thiết như thế nào

Thích

Hồi đáp

1 Phản ứng 2 Phản ứng

Elizabeth P

Kỹ sư hệ thống tại Airbnb. Trưởng nhóm toàn cầu GemTech

5 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Công việc tuyệt vời Tobias. Cám ơn vì đã chia sẻ

Thích

Hồi đáp

1 Phản ứng 2 Phản ứng

Anirban Datta

Kiến trúc & Kỹ thuật dữ liệu

5 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Atanu Chatterjee

Thích

Hồi đáp

1 Phản ứng

Thiago Guimarães

Kỹ sư phần mềm @ Layers Education. Giám đốc Công nghệ @ Hemocione. ECI UFRJ

6 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Bruno Dantas de Paiva Victor Leonardi dos Reis Matheus Leonardo Ferreira Luís Felipe Almeida Breno Arosa

Thích

Hồi đáp

4 lượt phản hồi 5 lượt phản hồi

Kevin Trần

Sr. Nhà khoa học dữ liệu tại Big Tech. Giọng Ca Đỉnh Cao 2019. Khoa học dữ liệu & Phân tích

6 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Tốt đẹp. Phải thử, nếu ngon thì gọi SQLGod đi 😂

Thích

Hồi đáp

5 lượt phản hồi 6 lượt phản hồi

Rahul Anand

Tăng trưởng @ Meesho

5 tháng

  • Báo cáo nhận xét này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Prashant Kumar fyi

Thích

Hồi đáp

1 Phản ứng 2 Phản ứng

Xem thêm bình luận

Để xem hoặc thêm nhận xét, hãy đăng nhập

Tobias [Toby] Mao

Đồng sáng lập và CTO @ Tobiko Data

4h Đã chỉnh sửa

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Tôi đã được hỏi về cách bạn có thể kiểm tra các truy vấn #SQL đơn vị. Đây là một mẫu đơn giản mà bạn có thể sử dụng để bắt đầu sử dụng #pyspark. Chỉ cần tạo các bản mô phỏng của tất cả các bảng mà bạn truy vấn và kiểm tra xem SQL có trả về kết quả như mong đợi không. Nếu cần đổi tên bảng, bạn có thể sử dụng SQLGlot hoặc regex để đổi tên. Nếu bạn không sử dụng một công cụ mà bạn có thể chạy cục bộ, bạn có thể đạt được điều gì đó tương tự bằng cách tạo các bảng tạm thời trên một DB thử nghiệm. Kiểm tra đơn vị dữ liệu của bạn có thể mất một chút công việc, nhưng nó hoàn toàn xứng đáng để tạo các đường dẫn dữ liệu có thể bảo trì. #dataengineering #analyticsengineering #testing

69

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Để xem hoặc thêm nhận xét, hãy đăng nhập

Tobias [Toby] Mao

Đồng sáng lập và CTO @ Tobiko Data

6d

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Khi tôi làm việc tại các công ty như Netflix và Airbnb, tất cả các quy trình gia tăng đều được thực hiện bằng cách sử dụng chiến lược chèn/ghi đè. Chèn ghi đè cực kỳ hiệu quả vì công cụ chỉ cần xử lý một cửa sổ dữ liệu. Nó cũng là tiêu chuẩn cho các động cơ như Spark/Hive. Tuy nhiên, khi tôi xem xét phần còn lại của ngành, có vẻ như hợp nhất có thể phổ biến hơn trong các hệ thống như Snowflake. Mặc dù hợp nhất có ý nghĩa đối với việc cập nhật dần dần bảng thứ nguyên, nhưng nó có vẻ không hiệu quả đối với các bảng dựa trên sự kiện/sự kiện. Bạn có thể phải tạo một khóa thay thế để toán tử hợp nhất hoạt động và bạn không thực sự mong đợi bất kỳ sự hợp nhất thực tế nào xảy ra vì các sự kiện của bạn đều là duy nhất. Có cách tiêu chuẩn nào để thực hiện thao tác chèn/ghi đè trong Snowflake cho các bảng thực tế lớn không?

123 41 Bình luận

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Để xem hoặc thêm nhận xét, hãy đăng nhập

Tobias [Toby] Mao

Đồng sáng lập và CTO @ Tobiko Data

1 tuần

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Nhận phản hồi từ đồng nghiệp là một món quà tuyệt vời và là cách tốt nhất để bạn cải thiện và phát triển. Mặc dù nhận được phản hồi có thể khó khăn nhưng điều quan trọng là phải tiếp thu ngay cả khi bạn không đồng ý. Nếu phản ứng ban đầu của bạn đối với phản hồi là phòng thủ hoặc chuẩn bị phản công, thì bạn đang xây dựng văn hóa thù địch xung quanh phản hồi. Bạn chắc chắn sẽ nhận được ít phản hồi hơn theo thời gian nếu đồng nghiệp của bạn sợ hãi hoặc thờ ơ với việc đưa ra phản hồi đó. Luôn nhớ rằng khi nhận được phản hồi rằng người gửi thực sự tin tưởng hoặc cảm thấy đủ mạnh mẽ về điều gì đó để thu hết can đảm đối chất với bạn. Mặc dù không phải lúc nào bạn cũng đồng ý với mọi phản hồi mà mình nhận được, nhưng bạn nên cố gắng hết sức để thừa nhận rằng người khác cũng đồng ý như vậy. Khi tôi nhận được phản hồi, điều đầu tiên tôi cố gắng làm là tiếp thu những gì họ nói. Tôi xác nhận rằng tôi đã nhận được phản hồi và cảm ơn họ vì điều đó. Thay vì ngay lập tức tự bảo vệ mình, tôi sẽ thử đặt mình vào vị trí của họ và đồng tình với việc tôi đã làm gì đó để khiến họ phải lên tiếng. Từ đó, tôi cố gắng tìm điểm chung để xem chúng ta có thể giải quyết vấn đề này như thế nào và tôi cần thực hiện những thay đổi nào để ngăn chặn điều này xảy ra lần nữa. Chậm lại một chút, có sự đồng cảm và nỗ lực có ý thức để cải thiện. Khuyến khích nhóm của bạn đưa ra phản hồi cho bạn và đừng ngại đưa ra phản hồi cho chính mình. Các nhóm khỏe mạnh có các vòng phản hồi tuyệt vời

59 2 Bình luận

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Để xem hoặc thêm nhận xét, hãy đăng nhập

Tobias [Toby] Mao

Đồng sáng lập và CTO @ Tobiko Data

2 tuần

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Bạn sẽ giải quyết một nhiệm vụ thực sự phức tạp như viết một công cụ #sql từ đầu như thế nào? . MVP cho phép bạn nhanh chóng nhận được kết quả để bạn có thể duy trì động lực hoàn thành nhiệm vụ hiện tại và học hỏi đủ cho lần lặp lại tiếp theo để cuối cùng xây dựng sản phẩm cuối cùng. Điều quan trọng là đặt các nhiệm vụ phụ có thể đạt được để tránh bị choáng ngợp hoặc nản lòng. Mặc dù chia nhỏ mọi thứ thành các bước nhỏ thì nói dễ hơn làm, nhưng tôi sẽ hướng dẫn bạn cách tôi tiếp cận việc viết một công cụ SQL mà không có bất kỳ kinh nghiệm nào về trình biên dịch [tôi không có bằng CS]. Giống như hầu hết, tôi thậm chí không biết làm thế nào để bắt đầu hoặc những gì liên quan đến việc hiểu một truy vấn SQL và sau đó chạy nó. Tôi đã tìm kiếm cách viết một ngôn ngữ lập trình và may mắn tìm thấy https. //lnkd. trong/gmJvuXBa. Sau khi đọc qua một vài chương, tôi đã học được những điều cơ bản để viết ngôn ngữ của mình. Tôi đặt MVP của mình là phân tích cú pháp và chạy một biểu thức rất cơ bản, CHỌN 1 + 1. Nó không cần phải mạnh mẽ. Mã không cần phải tốt, tôi chỉ muốn nó hoạt động trong trường hợp này. Điều đó liên quan đến 4 bước này. 1. quét. Biến câu lệnh SQL thành từ khóa/mã thông báo. CHỌN 1 + 1 -> [Mã thông báo. CHỌN, Mã thông báo. NUM, Mã thông báo. CỘNG VỚI, Mã thông báo. SỐ] 2. phân tích cú pháp. Biến mã thông báo thành một cây cú pháp trừu tượng. { LỰA CHỌN. { CỘT. {THÊM. {TRÁI. 1, ĐÚNG. 1}} 3. Lập kế hoạch. Chuyển đổi một cây cú pháp trừu tượng thành một kế hoạch logic. Nút quét -> 1 + 1 4. Phiên dịch / Thực thi. nếu bước == quét. đánh giá điểm cộng bằng cách chuyển đổi sang điểm cộng của python Mặc dù đây hơi giống bài viết "vẽ phần còn lại của con cú", nhưng nó không xa sự thật lắm. Phải mất nhiều lần lặp đi lặp lại và tra cứu rất nhiều trên Google, nhưng tôi đảm bảo luôn có những mục tiêu cụ thể có thể đạt được để duy trì động lực

Giới thiệu về Robert Nystrom

chế tạo thông dịch viên. com

19

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Để xem hoặc thêm nhận xét, hãy đăng nhập

Tobias [Toby] Mao

Đồng sáng lập và CTO @ Tobiko Data

2 tuần

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Bạn có biết rằng thứ tự tham gia của bạn có thể ảnh hưởng đáng kể đến hiệu suất của các truy vấn #sql của bạn không? . Thứ tự tham gia của bạn thực sự có thể ảnh hưởng đến lượng dữ liệu cần được xáo trộn. Nếu bạn có một truy vấn có nhiều phép nối, sẽ hiệu quả hơn nếu phép nối có chọn lọc nhất xảy ra trước. Bằng cách đó, các lần tham gia tiếp theo xử lý ít dữ liệu hơn. Mặc dù một số công cụ triển khai trình tối ưu hóa dựa trên chi phí để thực hiện sắp xếp lại tham gia tự động, nhưng không phải mọi công cụ đều có tính năng này và không phải lúc nào nó cũng đúng. Nhiều công cụ chỉ cần chạy các phép nối theo thứ tự mà bạn đã viết. Nếu bạn gặp sự cố với các truy vấn chứa nhiều liên kết, hãy thử sắp xếp lại chúng hoặc kiểm tra cài đặt công cụ của bạn về tối ưu hóa dựa trên chi phí và sắp xếp lại tham gia. Nếu công cụ của bạn đang tối ưu hóa truy vấn của bạn không chính xác và bạn không thể ghi đè cài đặt, bạn có thể khắc phục điều đó bằng cách tạo một bảng tạm thời với phép nối có chọn lọc nhất trước tiên. #dataengineering #hiệu suất

222 21 Bình luận

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Để xem hoặc thêm nhận xét, hãy đăng nhập

Tobias [Toby] Mao đăng lại cái này

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Chad Sanderson

Trưởng phòng dữ liệu, người ủng hộ hợp đồng dữ liệu

2 tuần

Mặc dù rất dễ bị cuốn vào sự cường điệu của cơ sở hạ tầng dữ liệu hiện đại, nhưng tất cả các chuyên gia dữ liệu nên nhớ công cụ dữ liệu được sử dụng rộng rãi nhất trên thế giới là Microsoft Excel. Nó linh hoạt, dễ chọn, không yêu cầu kỹ năng kỹ thuật, vô cùng sâu sắc và là điểm khởi đầu cho bất kỳ ai lần đầu tiên muốn thao tác dữ liệu. Có rất nhiều nhóm sẽ tốt hơn nếu đầu tư vào các giải pháp cho phép Excel truy cập vào lớp dữ liệu mạnh mẽ hơn là các công cụ nặng trị giá hàng triệu đô la tạo bảng điều khiển nơi dữ liệu cơ bản được xuất sang Excel để tạo bảng tổng hợp. Có một ngày cuối tuần tuyệt vời. #kỹ thuật dữ liệu

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Để xem hoặc thêm nhận xét, hãy đăng nhập

Chad Sanderson

Trưởng phòng dữ liệu, người ủng hộ hợp đồng dữ liệu

2 tuần

Mặc dù rất dễ bị cuốn vào sự cường điệu của cơ sở hạ tầng dữ liệu hiện đại, nhưng tất cả các chuyên gia dữ liệu nên nhớ công cụ dữ liệu được sử dụng rộng rãi nhất trên thế giới là Microsoft Excel. Nó linh hoạt, dễ chọn, không yêu cầu kỹ năng kỹ thuật, vô cùng sâu sắc và là điểm khởi đầu cho bất kỳ ai lần đầu tiên muốn thao tác dữ liệu. Có rất nhiều nhóm sẽ tốt hơn nếu đầu tư vào các giải pháp cho phép Excel truy cập vào lớp dữ liệu mạnh mẽ hơn là các công cụ nặng trị giá hàng triệu đô la tạo bảng điều khiển nơi dữ liệu cơ bản được xuất sang Excel để tạo bảng tổng hợp. Có một ngày cuối tuần tuyệt vời. #kỹ thuật dữ liệu

Tobias [Toby] Mao

Đồng sáng lập và CTO @ Tobiko Data

2 tuần

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Tham gia các bảng thường là nút cổ chai lớn nhất khi chạy các đường dẫn dữ liệu của bạn. Hiểu cách các công cụ phân tán tham gia có thể giúp bạn thực hiện mọi thứ nhanh hơn. Khi xử lý dữ liệu, nút cổ chai hầu như luôn là mạng IO. Điều này có nghĩa là nếu bạn có dữ liệu trên nhiều máy thì việc di chuyển dữ liệu từ máy này sang máy khác sẽ mất nhiều thời gian nhất. Có 3 loại phép nối phân tán, phép nối quảng bá, phép nối xáo trộn và phép nối đồng vị trí. Liên kết phát sóng siêu nhanh nhưng chỉ hoạt động khi có ít nhất một bên phù hợp với bộ nhớ. Bạn có thể thực hiện nối quảng bá bằng cách gửi một bản sao đầy đủ của mặt nhỏ hơn cho mỗi máy để thực hiện nối. Vì vậy, nếu bạn đang tham gia hai bảng nhỏ hoặc một bảng lớn và một bảng nhỏ, tham gia quảng bá thực sự có thể tăng tốc mọi thứ. Tham gia trộn ngẫu nhiên thường là mặc định có nghĩa là bạn cần phân phối lại [xáo trộn] dữ liệu từ cả hai bên vào các máy có cùng khóa tham gia. Điều này rất tốn kém vì toàn bộ tập dữ liệu của bạn cần chơi ghế nhạc và bạn đang trả chi phí quản lý mạng lớn. Mặc dù bạn không nhất thiết muốn làm điều này, đôi khi bạn không có lựa chọn nào khác vì không bên nào phù hợp với ký ức. Ngoài ra, các phép nối ngẫu nhiên có thể bị lệch, nghĩa là bạn có một khóa thường xuyên hơn nhiều so với các khóa khác. Ngoài ra còn có các liên kết cùng vị trí nhưng những liên kết này hiếm hơn và chỉ được triển khai trong một số công cụ như #starrocks. Nếu bạn biết trước những khóa nào bạn sẽ tham gia, một số công cụ có thể lưu trữ dữ liệu từ mỗi bảng trên các máy đó để không xảy ra xáo trộn. Tất nhiên điều này có nhược điểm là bạn cần biết trước những gì bạn đang tham gia. Vì vậy, nếu truy vấn #SQL của bạn chậm, hãy xem kế hoạch giải thích hoặc nhật ký để xem truy vấn của bạn đang sử dụng loại liên kết nào. Nếu bạn có thể làm cho một trong các bên nhỏ hơn [bằng cách lọc], bạn có thể biến nó thành một liên kết quảng bá, điều này thực sự sẽ tăng tốc truy vấn của bạn. Nếu không có cách nào để giảm kích thước tham gia của bạn, hãy coi chừng độ lệch. Hãy nhớ rằng, trong một phép nối ngẫu nhiên, tất cả dữ liệu có cùng phím nối đều được chuyển đến cùng một máy. Nếu dữ liệu của bạn bị sai lệch, nó có thể làm hỏng một máy duy nhất và bạn sẽ chỉ đợi một nút đó hoàn thành. Điều này thường xảy ra khi bạn có số không hoặc số 0 trong dữ liệu của mình nhưng bạn chưa lọc chúng ra. Một cách nâng cao để giải quyết vấn đề nghiêng là triển khai phép nối nghiêng. Một số công cụ như #spark 3 đã triển khai tham gia nghiêng tự động nhưng không phải lúc nào nó cũng hoạt động. Bạn có thể triển khai phép nối xiên bằng cách thêm một cột mới là một số ngẫu nhiên [1 -10 ] vào cạnh lớn hơn và thực hiện phép nối chọn với 1 - 10 ở phía bên phải, sau đó nối trên khóa ban đầu + ngẫu nhiên . Điều này sẽ phân phối khóa bị lệch trên nhiều máy hơn

169 15 Bình luận

Thích Bình luận

Chia sẻ

  • Sao chép
  • LinkedIn
  • Facebook
  • Twitter

Để xem hoặc thêm nhận xét, hãy đăng nhập

Tobias [Toby] Mao

Đồng sáng lập và CTO @ Tobiko Data

3w

  • Báo cáo bài viết này

    Bài báo cáo

    Bài báo cáo

    Quay lại Gửi

Vấn đề lớn nhất mà tôi nghe được về #snowflake là chi phí. Mặc dù nó cực kỳ mạnh mẽ và nhanh chóng, nhưng nếu đường ống của bạn không hiệu quả hoặc bạn có dữ liệu thực sự lớn, thì chi phí có thể tăng lên. Tôi nghĩ các công cụ như #dbt rất tuyệt vì chúng giúp bạn dễ dàng cấu trúc quy trình của mình thành các khối có thể bảo trì và tái sử dụng. Chúng cũng làm giảm rào cản đối với việc tạo đường ống dẫn bằng cách chỉ yêu cầu bạn viết #sql. Tuy nhiên, khi tổ chức của bạn phát triển với nhiều dữ liệu hơn hoặc nhiều người tiêu dùng/nhà sản xuất dữ liệu hơn, thì chi phí cũng tăng theo. Làm mới toàn bộ kho dữ liệu của bạn trên kênh phân tích mỗi khi bạn cần cập nhật thứ gì đó có thể giúp mọi thứ dễ dàng lúc đầu, nhưng nó không mở rộng quy mô. Làm thế nào bạn có thể tránh làm mới hoàn toàn kho dữ liệu của mình? . Tạo càng nhiều đường ống gia tăng càng tốt. Tất cả các bảng sự kiện/sự kiện phải tăng dần. 2. Tránh hủy chuẩn hóa cho đến khi kết thúc quy trình của bạn hoặc thực hiện việc đó trong chế độ xem hoặc khi đang di chuyển. 3. Tránh tổng hợp trước cho đến khi kết thúc quy trình của bạn hoặc thực hiện nhanh chóng. Tôi đã thấy một mô hình phổ biến của những người phụ thuộc quá nhiều vào tính toán trước nhưng điều đó rất lãng phí. Các bộ dữ liệu tổng hợp trước và không chuẩn hóa trở nên cũ kỹ và 99% kết quả không được sử dụng

Làm cách nào để phân tích cú pháp truy vấn SQL trong Python?

Bắt đầu nhanh. >>> nhập sqlparse >>> # Tách một chuỗi chứa hai câu lệnh SQL. >>> raw = 'chọn * từ foo; .

Trình phân tích cú pháp SQL là gì?

Giai đoạn phân tích cú pháp bao gồm tách các phần của câu lệnh SQL thành cấu trúc dữ liệu mà các quy trình khác có thể xử lý . Cơ sở dữ liệu phân tích cú pháp một câu lệnh khi được ứng dụng hướng dẫn, điều đó có nghĩa là chỉ ứng dụng chứ không phải chính cơ sở dữ liệu mới có thể giảm số lần phân tích cú pháp.

Làm cách nào để xác thực truy vấn SQL trong Python?

Kiểm tra định dạng SQL . $ sqlvalidator --check-format sql. py sẽ định dạng lại sql. py [1 SQL đã thay đổi] 1 tệp sẽ được định dạng lại [1 truy vấn SQL đã thay đổi]. $ sqlvalidator --định dạng sql. py định dạng lại sql. py [1 SQL đã thay đổi] 1 tệp được định dạng lại [1 truy vấn SQL đã thay đổi].

SQLGlot là gì?

SQLGlot là trình phân tích cú pháp SQL Python, trình chuyển mã và trình tối ưu hóa . Nó có thể được sử dụng để định dạng SQL hoặc dịch giữa các phương ngữ khác nhau như DuckDB, Presto, Spark, Snowflake và BigQuery. Nó nhằm mục đích đọc nhiều loại đầu vào SQL và đầu ra SQL đúng cú pháp trong các phương ngữ được nhắm mục tiêu.

Chủ Đề