Ai đã từng bước chân vào lĩnh vực phân tích dữ liệu, khoa học dữ liệu chắc ít nhất một lần đã suy ngẫm về câu hỏi này. Tôi nên bắt đầu hoặc chọn loại súng nào trong số những khẩu súng lớn này. SQL hoặc Python hoặc R. Trong khi mẹ tôi cảm thấy rằng tôi đang nghĩ về triển vọng cuộc sống của mình mỗi khi bà nhìn tôi từ phòng khách, thì tôi thực sự đang ngồi trước bàn làm việc suy nghĩ sâu sắc xem có nên tăng cường học SQL, R hay Python hay không. [Tôi biết bạn cảm nhận được một cú chạm táo bạo khập khiễng ở đó. ]. Mặc dù gần như có một cuộc tranh luận lớn sẽ luôn diễn ra giữa R và Python, nhưng trong bài viết này, tôi muốn tập trung vào SQL so với Python và R vì nhiều người sẽ quên SQL khi tham gia vào cuộc tranh luận sôi nổi giữa R và Python
Không còn nghi ngờ gì nữa, SQL là một trong những ngôn ngữ linh hoạt nhất mà thế giới công nghệ từng biết đến và đã trở thành cứu cánh cho các lập trình viên có ý định làm việc với cơ sở dữ liệu trong nhiều thập kỷ. Vì vậy, tại sao một người vẫn nên đầu tư thời gian vào việc học ngôn ngữ lâu đời này đã vượt qua thử thách của thời gian khi bạn có những anh chàng tuyệt vời như R, Python, Deep learning, Scala đang tạo ra tiếng vang và tin tức trong thế giới công nghệ? . Bắt đầu nào
Mục lục
Tại sao SQL vẫn phổ biến?
SQL là một công cụ tuyệt vời khi bạn đang xử lý cơ sở dữ liệu quan hệ để trích xuất thông tin hữu ích từ dữ liệu. Đối với hầu hết các quyết định kinh doanh mà chúng tôi đưa ra ở mức định lượng, SQL thực hiện tốt công việc với các hàm kết hợp và tổng hợp. Khi chúng ta chuyển sang cấp độ thao tác dữ liệu cao hơn, chẳng hạn như phân tích thống kê [mặc dù chúng ta có chức năng thống kê trong SQL], phân tích biểu đồ, Kiểm tra hồi quy, phân tích chuỗi thời gian bằng SQL trở nên khó khăn để đạt được chúng trừ khi bạn là một ninja SQL. Đây là nơi các thư viện và gói đa dạng trong Python/R tỏa sáng. Pandas trong Python hoặc dữ liệu. bảng trong R là các bản sao để xử lý dữ liệu dạng bảng hoặc quan hệ. Tuy nhiên, SQL vẫn tiếp tục trở nên phổ biến trong giới khoa học dữ liệu vì bản chất khai báo của nó; . Ngoài ra, sự phát triển của các kho dữ liệu như NoSQL, Hadoop, Redshift của Amazon và BigQuery của Google đã biến đổi đáng kể cách xử lý các thao tác dữ liệu phức tạp với tốc độ thực thi nhanh hơn
Python & R đang leo thang nhanh hơn bao giờ hết
Bỏ qua cuộc tranh luận về R vs Python, cả hai ngôn ngữ này đang tăng tốc rất nhanh trong cộng đồng khoa học dữ liệu. Tại sao? . Hơn nữa, đối với cá nhân tôi, lợi ích lớn nhất của các ngôn ngữ này là chúng có khả năng xử lý các hoạt động “từ đầu đến cuối” bắt đầu từ chuẩn bị dữ liệu, Xác thực, Thao tác, phân tích thăm dò, mô hình hóa và cuối cùng là trực quan hóa. Tôi không phải sắp xếp giữa các công cụ ở các giai đoạn khác nhau trong công việc của mình
Trường hợp sử dụng của SQL so với R
Hãy lấy một trường hợp sử dụng. Như các bạn đã biết, các hàm cửa sổ được sử dụng rất phổ biến trong thế giới phân tích ở chỗ nó cung cấp các tập hợp trên một phân vùng đối với từng hàng dữ liệu mà không làm ngưng tụ số lượng hàng trong một bảng. Dưới đây tôi đã thực hiện bốn thao tác sau bằng cách sử dụng các hàm cửa sổ trong SQL và R
- Tổng doanh thu
- doanh số tích lũy
- Trung bình động của Doanh thu
- Hoạt động xếp hạng
Data có ID, và doanh số tương ứng với ID đó như hình bên dưới
cách SQL
Cách R [sử dụng gói TidyVerse]
Kết quả đầu ra thu được từ cả hai công cụ là như nhau. Nhưng điều tôi muốn bạn chú ý ở đây là R nhỏ gọn hơn SQL một chút, lặp đi lặp lại nhưng linh hoạt. Nếu bạn để ý, tôi vẫn có thể sử dụng R tương đương với Over[] và sắp xếp theo[ID], nhưng tôi có thể hợp nhất chúng bằng cách sử dụng các hàm arrange[] và mutate[]. Ngoài ra, phần hay của R ở đây là, đặc biệt đối với những người đam mê SQL, bạn vẫn có thể truy vấn khung dữ liệu như thể đó là một bảng SQL và chuyển truy vấn dưới dạng chuỗi bằng cách sử dụng gói SQLDF. Mặt khác, nếu tôi thấy các thao tác phức tạp hơn sử dụng các hàm cửa sổ, SQL vẫn có thể chiếm ưu thế hơn R
Một lợi ích đáng kể mà tôi đã bắt gặp với R/python là khả năng nhập hoặc xuất các tệp ở nhiều định dạng khác nhau một cách đơn giản, điều mà nếu không thì đó là một cơn ác mộng trong SQL. Mặc dù, điều này nghe có vẻ hơi lạc hướng đối với các nhà phát triển đã quen với việc tạo và tích hợp các ứng dụng mặt trước vào cơ sở dữ liệu mặt sau bằng cách sử dụng ODBC và JDBC, tôi vẫn coi điều này đáng để khám phá thay vì dành thời gian và công sức để định cấu hình các gói và trình điều khiển cụ thể.
Mặt khác, việc hiểu một truy vấn SQL trực quan hơn và ít đáng sợ hơn khi so sánh với một tập lệnh R/python. Bởi vì các truy vấn SQL hầu hết là khép kín, tôi có thể dễ dàng tìm ra một truy vấn SQL dễ dàng hơn và thực hiện nó. Khi sử dụng tập lệnh python/R, người ta nên chấp nhận thực tế là bạn sẽ không bao giờ biết đầy đủ điều gì đang xảy ra; . Vì vậy, tôi sẽ chỉ tìm một chức năng mà tôi biết sẽ thực hiện công việc cho tôi, cắm và sử dụng chúng và nhận kết quả. Đây là một nhược điểm mà tôi thấy với các ngôn ngữ như Python/R với cộng đồng rộng lớn và nguồn tài nguyên vô tận
suy nghĩ kết luận
SQL luôn là một ngôi nhà an toàn. Mặc dù trong hầu hết các trường hợp, một tập lệnh SQL dài hơn nhiều so với các tập lệnh R/python của nó, nhưng sẽ dễ dàng hơn khi thực hiện theo cách đó giống như bạn đọc một ngôn ngữ tiếng Anh. Nhưng học một ngôn ngữ như R/python sẽ luôn giúp cuộc sống của bạn dễ dàng và hiệu quả hơn theo cách bạn xử lý dữ liệu. Vì vậy, nơi tốt nhất để bạn bắt đầu học là với SQL. Làm quen với nó, thử nghiệm với nhiều bộ dữ liệu, nắm bắt ngôn ngữ và sau đó bạn có thể dùng thử chúng trên R/Python. Bằng cách này, bạn không chỉ tăng tốc các kỹ năng học tập của mình mà còn có nhiều công cụ hơn trong thắt lưng áo giáp của mình
Cuối cùng, tôi sẽ nói, SQL vẫn là ông trùm, nhưng tôi sẽ nói, R và python tuyệt vời hơn và tiết kiệm hơn trong việc xử lý các thao tác dữ liệu